From b8b999fd66cda5959959cc8c2ff0ea453121e96a Mon Sep 17 00:00:00 2001 From: Julian Kiedaisch Date: Sun, 4 Oct 2026 12:35:35 +0000 Subject: [PATCH] feat: F4.8d the documentation mode's report as a PDF, as Java's ReportRun reads Java's report back with iText: every piece of text with its place, font, size and colour. The editor lays the report out by iText's rules (A4, leading 1.5, loose chunks in the current line, tables 80 % wide with padding 2, fixed traffic columns, page breaks) and draws it with pdf-lib in the PDF's own Helvetica, widths without kerning as iText measures. All device pages of Internet_Komplett, the first page and the data exchange of einfaches_rechnernetz_komplett match Java piece by piece; Java's iText reads our PDF with the same text in the same places. The sidebar gains Java's "Report"; the frames come from the room by a short subscription. Not adopted: true/false for DHCP (Java's own Ja/Nein), hash table orders, an image running off the page, the report writing back into the model. Co-Authored-By: Claude Opus 5.5 --- CHANGES.md | 2 + README.md | 2 +- package-lock.json | 43 + packages/doc/src/index.ts | 1 + packages/doc/src/report.ts | 120 + packages/doc/test/report.test.ts | 106 + packages/editor/browser/documentation.spec.ts | 3 +- packages/editor/browser/report.spec.ts | 79 + packages/editor/package.json | 1 + packages/editor/src/Editor.tsx | 15 +- .../src/assets/documentation/pdf_small.png | Bin 0 -> 13275 bytes packages/editor/src/canvas/networkImage.ts | 9 +- .../src/design/DocumentationSidebar.tsx | 20 +- packages/editor/src/i18n/de.json | 16 + packages/editor/src/i18n/en.json | 16 + packages/editor/src/report/report.ts | 181 + packages/editor/src/report/reportPdf.ts | 61 + packages/editor/src/report/reportWriter.ts | 262 + .../editor/src/simulation/captureCells.ts | 20 + .../editor/src/simulation/useSimulation.ts | 44 +- packages/editor/test/captureCells.test.ts | 25 +- packages/editor/test/i18n.test.ts | 16 + packages/editor/test/networkImage.test.ts | 14 +- packages/editor/test/report.java.json | 4881 +++++++++++++++++ packages/editor/test/report.ours.java.json | 1179 ++++ packages/editor/test/report.test.ts | 326 ++ tools/java-oracle/README.md | 50 + tools/java-oracle/run.sh | 20 +- tools/java-oracle/src/ReportRun.java | 237 + 29 files changed, 7726 insertions(+), 23 deletions(-) create mode 100644 packages/doc/src/report.ts create mode 100644 packages/doc/test/report.test.ts create mode 100644 packages/editor/browser/report.spec.ts create mode 100644 packages/editor/src/assets/documentation/pdf_small.png create mode 100644 packages/editor/src/report/report.ts create mode 100644 packages/editor/src/report/reportPdf.ts create mode 100644 packages/editor/src/report/reportWriter.ts create mode 100644 packages/editor/test/report.java.json create mode 100644 packages/editor/test/report.ours.java.json create mode 100644 packages/editor/test/report.test.ts create mode 100644 tools/java-oracle/src/ReportRun.java diff --git a/CHANGES.md b/CHANGES.md index 9916ad1..ec9ee14 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -237,6 +237,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `src/simulation/CaptureWindow.tsx`, `src/simulation/captureCells.ts`, `src/simulation/useSimulation.ts` (`traces`, `clearCapture`), `src/Editor.tsx`, `src/desktop/desktop.css`, `src/theme/tokens.css` (`--capture-*`), Kataloge (`capture.*`, `menu.showCapture`) | Java `AggregatedExchangeDialog` (`lauscherdialog_msg1`), `AggregatedExchangePanel` (`buttontabcomponent_msg1`), `AggregatedMessageTable` (`nachrichtentabelle_msg7`–`9`), `LauscherTableCellRenderer`, `LayerColorVar`, `Lauscher` (`rp_lauscher_msg1`–`14`), `GUIEvents` (`guievents_msg4`), gemessen mit `ExchangeWindowRun` | neu (F4.7): im Menü eines Geräts je Karte „Datenaustausch anzeigen (Adresse)“; ein Fenster mit einem Reiter je Karte, die Zeilen in Javas Schichtenfarben (dunkle Varianten im dunklen Thema), die gewählte weiß auf schwarz, darunter ihre Details, „Tabellen löschen“, „Als Textdatei exportieren“ (nach dem Reiter benannt), „Automatisches Scrollen“; Wahl und Scrollen je Reiter, behalten, solange das Fenster zu ist; das Fenster geht mit dem Entwurf und kommt mit dem nächsten Start; der Reiter einer entfernten Karte verschwindet. Besser als Java: die drei sind Knöpfe und ein Kästchen statt eines Menüs der rechten Maustaste; ein Frame wird nach seiner Nummer gewählt (Javas Details nehmen den Zeilenindex dafür) | | `src/design/DocumentationSidebar.tsx`, `src/design/DocumentationText.tsx`, `src/design/DocumentationMenu.tsx`, `src/canvas/documentationPaint.ts`, `src/canvas/Canvas.tsx` (Dokumentationsmodus), `src/simulation/ModeBar.tsx` (dritter Knopf), `src/Editor.tsx`, `src/assets/modes/dokumodus*.png`, `src/assets/documentation/*.png`, Kataloge (`mode.documentation`, `docu.*`) | Java `GUIMainMenu` (`btDokumodus`, `guimainmemu_msg14`, Reihenfolge der Knöpfe), `GUIDocumentationSidebar` (`docusidebar_msg1`, `3`), `GUIContainer` (Ablegen aus der Seitenleiste, Ebenen), `JDocuElement` (Fokus, Ziehen, Menü `guievents_msg13`–`21`, Zeichnen), `GUIDocumentationPanel` (Klick daneben), gemessen mit `DocuRun` | neu (F4.8b): der Dokumentationsmodus — Javas dritter Knopf vorn, er stoppt eine Simulation; die Seitenleiste „Text“/„Gliederungsfläche“ (gezogen landet ein Element mittig unter dem Zeiger, mit Fokus); die Elemente liegen über dem Netz und nehmen den Zeiger: Tippen gibt den Fokus, eine Fläche wird an ihrer Mitte gezogen, ein Text in seinem Fokusband, am Rand ändert sich die Größe nach Javas Regel; der Text wird in ein Feld über ihm getippt (auf `Y.Text`, Escape beendet, Strg+Entf löscht); das Menü mit Schriftgröße, Schriftstil, Javas Farben und Löschen; Entf löscht; Javas Zeichnung je Modus (halbtransparent im Dokumentationsmodus, sonst deckend aufgehellt, Rand, grauer Textrand nur im Dokumentationsmodus, Fokus blau). Besser als Java: Tippen auf die Seitenleiste legt ein Element in die Mitte der Ansicht (Java legt nichts ab); das Menü zeigt Größen, Stile und Farben auf einmal statt in Untermenüs; die Ränder lassen sich bei kleinem Zoom mit dem Finger greifen (mindestens 10 Bildschirmpunkte) | | `src/canvas/networkImage.ts`, `src/design/exportImage.ts`, `src/design/DocumentationSidebar.tsx` („Exportieren“), `src/Editor.tsx` (`projectName`), `src/download.ts`, `src/canvas/layout.ts` (`cableFrame`, `cableControl`), `src/main.tsx` (Dateiname), `src/assets/documentation/download_small.png`, Kataloge (`docu.export`, `docu.exportHint`, `docu.saveFailed`) | Java `GUIDocumentationSidebar` (`docusidebar_msg5`, `6`), `GUIContainer.exportAsImage/createNetworkImage`, `GUIPrintPanel`, `GUIFooterPanel`, `GUIMainArea` (Grenzen), `JCablePanel` (Grenzen, Farben), `guimainmemu_msg11`, gemessen mit `ExportRun` | neu (F4.8c): „Exportieren“ in der Seitenleiste des Dokumentationsmodus speichert die Fläche als PNG wie Java — Dokumentation wie im Entwurf gemalt unter dem Netz, Kabel, Geräte, nichts gewählt, Hintergrund durchsichtig; Javas Ausschnitt (10 Rand, die hellgraue Fußzeile 20 unter dem untersten Element, 20 Rand darunter); Dateiname nach dem Projekt; scheitert das Speichern, Javas „Fehler beim Speichern aufgetreten!“. Das Bild wird mit Canvas 2D gemalt, nicht aus der SVG gerastert (ein `foreignObject` sperrt die Leinwand unter WebKit). **Nicht übernommen:** ein leeres Projekt gibt bei Java ein leeres Bild 20 × 35 (die Fußzeile läuft über), hier die Fußzeile allein; Java schneidet an den Rändern seiner Fläche ab, der Editor hat keine. Die Fußzeile trägt den Projektnamen, nicht den Pfad (den kennt kein Browser). Javas englisches „Error occured!“ berichtigt. Der Download des Datenaustauschs nutzt denselben Helfer | +| `src/report/reportWriter.ts`, `src/report/report.ts`, `src/report/reportPdf.ts`, `src/design/DocumentationSidebar.tsx` („Report“), `src/Editor.tsx` (Bericht), `src/simulation/useSimulation.ts` (`captures`), `src/simulation/captureCells.ts` (`reportRows`), `src/canvas/networkImage.ts` (`exportNames.report`), `src/assets/documentation/pdf_small.png`, Kataloge (`docu.report`, `docu.reportHint`, `report.*`), Abhängigkeit `pdf-lib` (MIT) | Java `GUIDocumentationSidebar` (`docusidebar_msg7`, `8`, `generateReport`), `ReportGenerator` (Aufbau, Schriften, Farben, Tabellen), iText 5 (Satz: Zeilenabstand, Umbruch, Tabellen, Seitenwechsel), `main_dlg_YES`/`NO`, gemessen mit `ReportRun` | neu (F4.8d): „Report“ speichert Javas Bericht als PDF — Titel und Projektname, „1. Übersicht“ mit dem exportierten Bild, „2. Komponenten“ je Gerät mit Karten (Basiskonfiguration, Netzwerkschnittstellen, Anwendungen, DNS-Einträge, Weiterleitungstabelle, Portweiterleitung), „3. Datenaustausch“ je Karte mit Rahmen; Satz nach iTexts Regeln, Helvetica ohne eingebettete Schrift, Breiten ohne Unterschneidung wie iText (pdf-libs `widthOfTextAtSize` unterschneidet). pdf-lib wird erst beim Klick geladen. Die Rahmen holt der Editor mit einem kurzen Abo aller Karten beim Raum (auch nach dem Stopp). **Nicht übernommen:** `true`/`false` bei DHCP (Javas eigenes „Ja“/„Nein“); Programme und Karten in Javas HashMap-Reihenfolge (hier Installation bzw. Geräte); ein Bild höher als die Seite läuft über den Rand (hier verkleinert); der Bericht schreibt Protokolle der Portweiterleitung ins Modell zurück; „tcp“ klein bleibt bei Java klein. Projektname statt Pfad unter dem Titel; ein Zeichen, das Helvetica nicht schreiben kann, wird „?“ | | `src/Editor.tsx`, `src/canvas/Canvas.tsx` (Aktionsmodus) | Java `GUIContainer.setActiveSite/showDesktop/closeDialogs/reopenDialogs`, `GUIKnotenItem` (Klick im Aktionsmodus), `GUIEvents.kontextMenueAktionsmodus` (`guievents_msg3`), `JCablePanel` (`farbeBlinken`) | erweitert (F4.6a): im Aktionsmodus ist der Entwurf gesperrt wie bei Java — keine Palette, kein Blatt, nichts bewegt sich, kein Rückgängig, kein Löschen —, Kabel mit Rahmen leuchten grün, ein Tipp auf einen Rechner öffnet seinen Desktop (Langdruck: „Desktop anzeigen“); offene Desktops überstehen den Entwurf und erscheinen beim nächsten Start wieder, die eines entfernten Rechners nicht | | `browser/simulation.spec.ts`, `test/programs.test.ts` | — | neu (F4.6a): Moduswechsel, Sperren, Geschwindigkeit, Kabelaktivität, Desktop mit Titel, Programmen, Netzwerk-Info, Verschieben und Stapeln, Handy, Englisch; die Programmliste gegen Javas `Desktop_*.txt`; seit F4.6b die Befehlszeile (Ping über drei Router, Verlauf, Chips, Strg+C, Behalten, exit) und der Fehlerfall des Raums; seit F4.6c die Software-Installation (sofort lauffähig, Doppelklick, Abwählen) | | `browser/web.spec.ts`, `browser/fixtures/web-pages.fls`, `test/webPagesFixture.test.ts`, `test/serverLines.test.ts`, `src/simulation/useSimulation.ts` (`views`), `src/Editor.tsx` (Sprache beim Start), `src/desktop/DesktopWindow.tsx` | — | neu (F4.6d): Browser und Webserver in Chromium auf einer eigenen Projektdatei (mit den Befehlen des Dokuments gebaut und bei jedem Lauf verglichen): Adresszeile, Titel, Sandbox, Bilder, Marke, Links im Ordner, beide Formulare bis in die Zeilen des Servers, Fehlerseite, nicht erreichbarer Server, Knopf, Kästchen und Tabelle, die Routerseiten auf Englisch; die Zeilen des Servers gegen Javas Fenster | @@ -252,6 +253,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `browser/capture.spec.ts`, `test/captureCells.test.ts` | — | neu (F4.7): auf `web-pages.fls` Javas Menü, eine Seite geladen (Zeile je Frame, Javas Farben, Details, Textdatei mit Javas Kopf), die Karten eines Routers, „Tabellen löschen“, „Automatisches Scrollen“ aus, ein Reiter geschlossen, das Fenster über Entwurf und Start, der Reiter eines entfernten Rechners weg; auf einem Handy; die Zellen in beiden Sprachen und Zahlenformaten | | `browser/documentation.spec.ts`, `test/documentationPaint.test.ts` | — | neu (F4.8b): auf `nat_with_mapped_port` Javas Knopfreihenfolge, eine Fläche gezogen (mittig, grau, Deckkraft 200), verschoben, auf 20 × 20 verkleinert, Farbe aus Javas zwölf; ein Text getippt, groß und kursiv; Escape, Javas Textrand; im Entwurf deckend aufgehellt, nicht wählbar; Entf; Start der Simulation beendet den Modus; Handy; die Zeichenregeln gegen Javas gemessene Pixel | | `test/networkImage.test.ts`, `test/networkImage.java.json`, `browser/documentation.spec.ts` (Export) | — | neu (F4.8c): Ausschnitt und Fußzeile gegen Javas Druckpanel auf vier Projekten (aus Javas eigenen Grenzen, die von Javas Schrift abhängen), jedes Kabel Javas gegen `cableFrame`, Javas Farben (durchsichtig, Fußzeile 192, Fläche wie im Entwurf); Zeilenumbruch; Dateinamen; das Malen auf einem aufzeichnenden Kontext (Reihenfolge, Farben, gestrichelte Funkstrecke); im Browser der Download (Name, Größe aus den Rahmen der Fläche, Eckpixel, Flächenfarbe 215, Fußzeile hellgrau) und Javas Meldung, wenn `toBlob` nichts liefert | +| `test/report.test.ts`, `test/report.java.json`, `test/report.ours.java.json`, `browser/report.spec.ts` | — | neu (F4.8d): jedes Textstück von Javas Bericht (Wort, Ort, Schrift, Größe, Farbe) gegen den eigenen Satz — alle Geräteseiten von `Internet_Komplett`, die erste Seite, ein langer Titel, ein Projekt ohne Geräte, ein leeres, der Datenaustausch von `einfaches_rechnernetz_komplett` über alle Seiten (Javas Zeilen aus Javas Seiten); Javas iText liest das eigene PDF und findet dieselben Stücke an denselben Orten (SHA-256 festgehalten); im Browser der Bericht nach einem kurzen Lauf mit DHCP: Dateiname, Titel, Bild, Geräte, Datenaustausch | | `src/sheet/ServicePanels.tsx`, `src/sheet/RowsEditor.tsx`, `src/sheet/SheetTabs.tsx`, `src/sheet/DeviceSheet.tsx` (Seiten) | Java `JDHCPKonfiguration` (`jdhcpkonfiguration_msg1`–`15`), `JPortForwardingDialog` (`jportforwarding_msg4`–`7`, `jgatewayconfiguration_msg19`) | neu (F4.5c): Javas Dialoge als Seiten des Blatts mit „Zurück“ — DHCP-Server (Grundeinstellungen, statische Adresszuweisung; beim Rechner, gesperrt während DHCP die Karte einrichtet, und auf dem LAN-Reiter des Heimrouters), Portfreigaben (Heimrouter); jedes Feld beim Verlassen übernommen statt mit Javas OK-Knopf. Die Zeilentabellen (Weiterleitung, Zuordnungen, Portfreigaben) teilen sich `RowsEditor`: eine neue Zeile, sobald alle Felder gültig sind, Zeile wählen, bearbeiten, löschen. Javas Tooltip zu „Manuelle Einstellungen“ als Text unter dem Kästchen (ein Finger hat kein Überfahren) | | `src/sheet/RouterSheets.tsx`, `src/sheet/NameField.tsx`, `src/canvas/Canvas.tsx` (`highlightedLink`), `src/theme/tokens.css` (`--canvas-cable-active`) | Java `JVermittlungsrechnerKonfiguration`, `JGatewayConfiguration`, `JWeiterleitungsTabelle` (Wörter `jvermittlungsrechnerkonfiguration_msg6`–`26`, `jweiterleitungstabelle_msg3`–`6`), `JCablePanel.farbeBlinken`, `Kabel.setAktiv` | neu (F4.5b): Blatt des Vermittlungsrechners — Reiter Allgemein (Name, Gateway, Automatisches Routing, IP-Weiterleitung nur angezeigt), je Karte (Reiter mit ihrer Adresse, „Verbunden mit …“, Adresse, Maske, MAC) und Weiterleitungstabelle (alle Einträge oder nur die manuellen, Javas Zeilen grau, eine neue Zeile, die mit vier gültigen Feldern übernommen wird, Zelle bearbeiten, Eintrag löschen; bei RIP gesperrt); Blatt des Heimrouters mit Allgemein, LAN, WAN (DHCP sperrt die WAN-Adresse). Das Kabel der offenen Karte leuchtet grün wie bei Java. Javas „Eintrag Löschen“ klein geschrieben | diff --git a/README.md b/README.md index d10dded..ac19b4e 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ die Herkunft je Paket. Lizenz dieses Repos: **GPL-3.0** (`LICENSE`). | `packages/doc` | gemeinsames Dokument (Yjs): Projekt ⇄ Dokument, Schnappschuss des Kerns, Hausmeister, die Änderungen der Werkzeuge und des Geräte-Blatts (mit Javas Eingabeprüfung) | | `packages/protocol` | die eine Nachrichtenliste zwischen Editor und Simulationsraum (`/sim`) | | `packages/sim` | Simulationsraum (für Server F und den Web Worker) und `LocalSimHost` | -| `packages/editor` | Oberfläche im Iframe des Dashboards (React, Vite): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren); `npm run dev -w @mdg-filius/editor` öffnet die Entwicklungsseite | +| `packages/editor` | Oberfläche im Iframe des Dashboards (React, Vite): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren, Bericht als PDF); `npm run dev -w @mdg-filius/editor` öffnet die Entwicklungsseite | | `server` | Filius-Dienst auf Server F *(folgt)* | Plan und Entscheidungen: `knowledge/plans/FILIUS_WEB_PLAN.md` im Dashboard. diff --git a/package-lock.json b/package-lock.json index b375f9a..7e71d7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -842,6 +842,24 @@ "node": "^22.20 || ^24.12 || >=25" } }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.10" + } + }, "node_modules/@playwright/test": { "version": "1.62.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", @@ -1896,6 +1914,12 @@ "node": ">=18" } }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -1913,6 +1937,18 @@ "node": ">= 14.16" } }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "license": "MIT", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -2226,6 +2262,12 @@ "node": ">=14.0.0" } }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -2521,6 +2563,7 @@ "@mdg-filius/fls": "0.0.0", "@mdg-filius/protocol": "0.0.0", "@mdg-filius/sim": "0.0.0", + "pdf-lib": "^1.17.1", "react": "18.3.1", "react-dom": "18.3.1", "yjs": "^13.6.33" diff --git a/packages/doc/src/index.ts b/packages/doc/src/index.ts index 1bda9d6..52c9097 100644 --- a/packages/doc/src/index.ts +++ b/packages/doc/src/index.ts @@ -5,6 +5,7 @@ export * from './fields.js'; export * from './files.js'; export * from './janitor.js'; export * from './projectDoc.js'; +export * from './report.js'; export * from './settings.js'; export * from './simulation.js'; export * from './sheet.js'; diff --git a/packages/doc/src/report.ts b/packages/doc/src/report.ts new file mode 100644 index 0000000..265f526 --- /dev/null +++ b/packages/doc/src/report.ts @@ -0,0 +1,120 @@ +// What FILIUS' report (ReportGenerator.addComponentConfigSection) tells of +// each device that has cards (InternetKnoten: computers, notebooks, routers, +// home routers; not switches or modems), in the order of the devices: its +// label, gateway and DNS server, whether DHCP sets it up (computers only), +// its cards, its programs (computers only, in the order they were +// installed), its DNS records (with a DNS server), its forwarding table (the +// rows whose destination is an address, as Java's holeTabelle and its +// filter give them) and a home router's port forwarding (the rows whose +// protocol Java knows: TCP, UDP, 6 or 17, written TCP or UDP). And the cards +// whose data exchange the report lists, with their device's label and +// address. +// +// Better than Java: a protocol written in small letters is written TCP or +// UDP too (Java's switch only knows the capitals and the numbers); the +// report changes nothing (Java writes the protocols back into the home +// router's table). + +import type * as Y from 'yjs'; +import { DNS_HOSTS_PATH, isValidJavaIPAddress, readDnsHosts, routeTableRows, type InstallableProgram, type NodeKind, type RouteRow } from '@mdg-filius/core'; +import { nodeFiles } from './files.js'; +import { inOrder, ROOTS } from './projectDoc.js'; +import { deviceSheet } from './sheet.js'; +import { captureCards, nodeLabel } from './view.js'; + +export interface ReportCard { + readonly macAddress: string; + readonly ipAddress: string; + readonly subnetMask: string; +} + +export interface ReportDevice { + readonly id: string; + readonly kind: Extract; + readonly label: string; + readonly gateway: string; + readonly dnsServer: string; + /** Computers only. */ + readonly dhcpClient?: boolean; + readonly cards: readonly ReportCard[]; + /** Computers only: the programs with a window (not the DHCP server), in the order they were installed. */ + readonly programs?: readonly InstallableProgram[]; + /** With a DNS server: its records. */ + readonly dnsRecords?: readonly { readonly domainName: string; readonly type: string; readonly rdata: string }[]; + readonly routes: readonly RouteRow[]; + /** Home routers only: the rows of its port forwarding Java reports. */ + readonly portForwarding?: readonly (readonly [protocol: string, publicPort: string, lanIPAddress: string, lanPort: string])[]; +} + +const PROTOCOLS: Readonly> = { tcp: 'TCP', '6': 'TCP', udp: 'UDP', '17': 'UDP' }; + +/** The rows Java reports: those whose destination is an address. */ +const reported = (rows: readonly RouteRow[]) => rows.filter((row) => isValidJavaIPAddress(row.destinationNetwork)); + +/** The DNS server's file of records; without it none, as Java reads none. */ +function hostsText(doc: Y.Doc, id: string): string { + try { + return nodeFiles(doc, id)?.textFile(DNS_HOSTS_PATH) ?? ''; + } catch { + return ''; + } +} + +export function reportDevices(doc: Y.Doc): ReportDevice[] { + const devices: ReportDevice[] = []; + for (const [id, node] of inOrder(doc.getMap>(ROOTS.nodes))) { + const sheet = deviceSheet(doc, id)!; + const label = nodeLabel(node); + const device = (node.get('settings') as Y.Map).get('device') as Y.Map | undefined; + const dnsServer = (device?.get('dnsServer') as string | undefined) ?? ''; + if (sheet.kind === 'pc' || sheet.kind === 'notebook') { + const programs = [...(node.get('programs') as Y.Map).keys()] as InstallableProgram[]; + const hosts = programs.includes('dnsServer') ? hostsText(doc, id) : undefined; + const card = { ipAddress: sheet.ipAddress, subnetMask: sheet.subnetMask }; + devices.push({ + id, + kind: sheet.kind, + label, + gateway: sheet.defaultGateway, + dnsServer: sheet.dnsServer, + dhcpClient: sheet.dhcpClient, + cards: [{ macAddress: sheet.macAddress, ...card }], + programs: programs.filter((program) => program !== 'dhcpServer'), + ...(hosts === undefined ? {} : { dnsRecords: readDnsHosts(hosts).map(({ domainName, type, rdata }) => ({ domainName, type, rdata })) }), + routes: reported(routeTableRows([card], [], sheet.defaultGateway)), + }); + } else if (sheet.kind === 'router') { + devices.push({ + id, + kind: sheet.kind, + label, + gateway: sheet.gateway, + dnsServer, + cards: sheet.interfaces.map(({ macAddress, ipAddress, subnetMask }) => ({ macAddress, ipAddress, subnetMask })), + routes: reported(sheet.table), + }); + } else if (sheet.kind === 'gateway') { + const cards = [sheet.wan, sheet.lan].map(({ macAddress, ipAddress, subnetMask }) => ({ macAddress, ipAddress, subnetMask })); + devices.push({ + id, + kind: sheet.kind, + label, + gateway: sheet.gateway, + dnsServer, + cards, + routes: reported(routeTableRows(cards, [], sheet.gateway)), + portForwarding: sheet.portForwarding.flatMap((row) => { + const protocol = PROTOCOLS[row.protocolValue.toLowerCase()]; + return protocol === undefined ? [] : [[protocol, row.publicPortValue, row.lanIPAddress, row.lanPortValue] as const]; + }), + }); + } + } + return devices; +} + +/** Every card of the reported devices, in their order: its port, its device's label and its address. */ +export function reportCards(doc: Y.Doc): { readonly portId: string; readonly label: string; readonly ipAddress: string }[] { + // Only computers, routers and home routers have cards with an address. + return inOrder(doc.getMap>(ROOTS.nodes)).flatMap(([id, node]) => captureCards(doc, id).map((card) => ({ portId: card.portId, label: nodeLabel(node), ipAddress: card.ipAddress }))); +} diff --git a/packages/doc/test/report.test.ts b/packages/doc/test/report.test.ts new file mode 100644 index 0000000..cfc6160 --- /dev/null +++ b/packages/doc/test/report.test.ts @@ -0,0 +1,106 @@ +// What the report tells of each device (reportDevices) and which cards it +// lists (reportCards), on FILIUS' example Internet_Komplett — the whole of it +// is compared with Java's report in packages/editor/test/report.test.ts — +// and on changes a Java file can carry: a forwarding row whose destination +// is no address, a router's DNS server, a computer's DHCP server among its +// programs, a home router's port forwarding written with numbers, small +// letters or a protocol Java does not know. + +import { readFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, it } from 'vitest'; +import * as Y from 'yjs'; +import { openProjectArchive } from '@mdg-filius/fls'; +import { reportCards, reportDevices, writeProject } from '../src/index.js'; + +const corpus = join(dirname(fileURLToPath(import.meta.url)), '../../../corpus/java-examples'); +const FILE = 'Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls'; + +function docOf(file: string): Y.Doc { + const doc = new Y.Doc(); + let next = 0; + writeProject( + doc, + openProjectArchive(new Uint8Array(readFileSync(join(corpus, file))), () => `id${next++}`), + ); + return doc; +} +const nodeNamed = (doc: Y.Doc, name: string) => [...doc.getMap>('nodes').entries()].find(([, node]) => node.get('name') === name)!; +const settings = (node: Y.Map) => node.get('settings') as Y.Map; +const row = (fields: Readonly>) => { + const map = new Y.Map(); + for (const [key, value] of Object.entries(fields)) map.set(key, value); + return map; +}; + +describe('the devices of the report', () => { + it('tells of the computers, routers and home routers in their order, not of the switches', () => { + const devices = reportDevices(docOf(FILE)); + // 26 devices, four of them switches. + expect(devices.length).toBe(22); + expect(devices.map((device) => device.kind)).not.toContain('networkSwitch'); + const server = devices.find((device) => device.label === 'DNS (8.8.8.8)')!; + expect(server).toMatchObject({ kind: 'pc', gateway: '8.0.0.1', dnsServer: '', dhcpClient: false, programs: ['dnsServer', 'textEditor', 'commandPrompt'] }); + expect(server.dnsRecords![1]).toEqual({ domainName: 'gmx.de.', type: 'MX', rdata: 'mail.gmx.de.' }); + expect(devices.find((device) => device.label === 'Firewall')).toMatchObject({ kind: 'gateway', portForwarding: [['TCP', '80', '10.0.0.1', '80']] }); + }); + + it("leaves out a forwarding row whose destination is no address, as Java's report does", () => { + const doc = docOf(FILE); + const [id, provider] = nodeNamed(doc, 'Provider 1'); + doc.transact(() => { + const routes = new Y.Array>(); + routes.push([ + row({ destinationNetwork: 'kein Netz', subnetMask: '255.0.0.0', gateway: '2.0.0.2', interfaceIPAddress: '2.0.0.1' }), + row({ destinationNetwork: '9.0.0.0', subnetMask: '255.0.0.0', gateway: '2.0.0.2', interfaceIPAddress: '2.0.0.1' }), + ]); + settings(provider).set('routes', routes); + }); + const destinations = reportDevices(doc) + .find((device) => device.id === id)! + .routes.map((route) => route.destinationNetwork); + expect(destinations).toContain('9.0.0.0'); + expect(destinations).not.toContain('kein Netz'); + }); + + it("writes a router's DNS server, as Java's does", () => { + const doc = docOf(FILE); + const [id, provider] = nodeNamed(doc, 'Provider 1'); + doc.transact(() => (settings(provider).get('device') as Y.Map | undefined)?.set('dnsServer', '8.8.8.8') ?? settings(provider).set('device', row({ dnsServer: '8.8.8.8' }))); + expect(reportDevices(doc).find((device) => device.id === id)!.dnsServer).toBe('8.8.8.8'); + }); + + it('leaves the DHCP server out of the programs, as it has no window', () => { + const doc = docOf(FILE); + const [id, server] = nodeNamed(doc, 'DNS (8.8.8.8)'); + doc.transact(() => (server.get('programs') as Y.Map).set('dhcpServer', new Y.Map())); + expect(reportDevices(doc).find((device) => device.id === id)!.programs).toEqual(['dnsServer', 'textEditor', 'commandPrompt']); + }); + + it('writes the port forwarding Java reports: TCP and UDP, also written 6, 17 or in small letters; no other protocol', () => { + const doc = docOf(FILE); + const [id, firewall] = nodeNamed(doc, 'Firewall'); + doc.transact(() => { + const rows = new Y.Array>(); + for (const protocolValue of ['6', '17', 'udp', 'Tcp', 'ICMP']) rows.push([row({ protocolValue, publicPortValue: '8080', lanIPAddress: '10.0.0.1', lanPortValue: '80' })]); + settings(firewall).set('portForwarding', rows); + }); + expect( + reportDevices(doc) + .find((device) => device.id === id)! + .portForwarding!.map(([protocol]) => protocol), + ).toEqual(['TCP', 'UDP', 'UDP', 'TCP']); + }); +}); + +describe('the cards of the report', () => { + it("lists every card with an address, under its device's label, in the devices' order", () => { + const cards = reportCards(docOf(FILE)); + expect(cards[0]).toMatchObject({ label: '10.10.20.11', ipAddress: '10.10.20.11' }); + expect(cards.filter((card) => card.label === 'Provider 1').map((card) => card.ipAddress)).toEqual(['42.0.0.1', '6.0.0.2', '2.0.0.1']); + // No switch has one. + expect(cards.some((card) => card.label.startsWith('Switch'))).toBe(false); + expect(cards.length).toBe(reportDevices(docOf(FILE)).reduce((sum, device) => sum + device.cards.length, 0)); + }); +}); diff --git a/packages/editor/browser/documentation.spec.ts b/packages/editor/browser/documentation.spec.ts index 88021c5..ac0feaa 100644 --- a/packages/editor/browser/documentation.spec.ts +++ b/packages/editor/browser/documentation.spec.ts @@ -54,7 +54,7 @@ test('makes, moves, resizes, colours and types documentation as Java does, and p await expect(canvas).toHaveAttribute('data-mode', 'documentation'); await expect(page.getByRole('navigation', { name: 'Komponenten' })).toHaveCount(0); const sidebar = page.getByRole('navigation', { name: 'Dokumentation' }); - await expect(sidebar.getByRole('button')).toHaveText(['Text', 'Gliederungsfläche', 'Exportieren']); + await expect(sidebar.getByRole('button')).toHaveText(['Text', 'Gliederungsfläche', 'Exportieren', 'Report']); // A rectangle dragged onto the surface: 100 × 50, its middle where it was dropped, grey, with the focus. const surface = (await canvas.boundingBox())!; @@ -241,6 +241,7 @@ test('keeps the documentation mode within reach on a phone', async ({ page }) => await page.getByRole('button', { name: 'Wechselt in den Dokumentationsmodus' }).click(); await expect(page.getByRole('button', { name: 'Gliederungsfläche' })).toBeInViewport({ ratio: 1 }); await expect(page.getByRole('button', { name: 'Exportieren' })).toBeInViewport({ ratio: 1 }); + await expect(page.getByRole('button', { name: 'Report' })).toBeInViewport({ ratio: 1 }); const rights = await page.locator('.editor-toolbar > *').evaluateAll((parts) => parts.map((part) => part.getBoundingClientRect().right)); expect(Math.max(...rights)).toBeLessThanOrEqual(360); }); diff --git a/packages/editor/browser/report.spec.ts b/packages/editor/browser/report.spec.ts new file mode 100644 index 0000000..78d99d2 --- /dev/null +++ b/packages/editor/browser/report.spec.ts @@ -0,0 +1,79 @@ +// FILIUS' „Report“ in Chromium (F4.8d), on FILIUS' example +// „einfaches_rechnernetz_komplett.fls“, run for a moment (its notebooks ask for +// addresses by DHCP at once), then in the documentation mode the report +// saved under the project's name — a PDF with Java's title, the overview's +// image, every computer's configuration and the data exchange of each card +// that saw frames, with the rows' words as the data exchange window has +// them. + +import { readFileSync } from 'node:fs'; +import { expect, test } from '@playwright/test'; +import { decodePDFRawStream, PDFArray, PDFDocument, PDFName, PDFRawStream } from 'pdf-lib'; +import { openEditor, serveEditor } from './editorPage.js'; + +let server: { readonly base: string; readonly close: () => Promise }; + +test.beforeAll(async () => { + server = await serveEditor(); +}); + +test.afterAll(async () => { + await server.close(); +}); + +/** Each page's words, as pdf-lib writes them (hex strings shown with Tj, in Windows-1252). */ +async function pageTexts(bytes: Uint8Array): Promise { + const pdf = await PDFDocument.load(bytes); + return pdf.getPages().map((page) => { + const contents = page.node.get(PDFName.of('Contents')); + const streams = contents instanceof PDFArray ? contents.asArray() : [contents]; + const words: string[] = []; + for (const reference of streams) { + const stream = pdf.context.lookup(reference); + if (!(stream instanceof PDFRawStream)) continue; + const operators = new TextDecoder('latin1').decode(decodePDFRawStream(stream).decode()); + for (const [, hex] of operators.matchAll(/<([0-9A-Fa-f]*)>\s*Tj/g)) + words.push(new TextDecoder('windows-1252').decode(Uint8Array.from(hex!.match(/../g) ?? [], (pair) => Number.parseInt(pair, 16)))); + } + return words; + }); +} + +test("saves Java's report of the project, with the data exchange so far", async ({ page }) => { + test.setTimeout(90_000); + await openEditor(page, server.base, 'einfaches_rechnernetz_komplett.fls'); + await page.getByRole('button', { name: 'Wechselt in den Aktionsmodus' }).click(); + await expect(page.locator('svg.filius-canvas')).toHaveAttribute('data-mode', 'simulation'); + // A cable lights up: frames went over it. + await expect(page.locator('path[data-active="true"]').first()).toBeAttached({ timeout: 20_000 }); + await page.getByRole('button', { name: 'Wechselt in den Dokumentationsmodus' }).click(); + const button = page.getByRole('navigation', { name: 'Dokumentation' }).getByRole('button', { name: 'Report' }); + await expect(button).toHaveAttribute('title', 'Report als PDF-Dokument erstellen'); + const saved = page.waitForEvent('download'); + await button.click(); + const download = await saved; + expect(download.suggestedFilename()).toBe('einfaches_rechnernetz_komplett.pdf'); + await expect(button).toBeEnabled(); + + const bytes = new Uint8Array(readFileSync((await download.path())!)); + const pdf = await PDFDocument.load(bytes); + expect(pdf.getTitle()).toBe('Filius-Dokumentation: einfaches_rechnernetz_komplett'); + expect(pdf.getPage(0).getSize()).toEqual({ width: 595, height: 842 }); + const pages = await pageTexts(bytes); + // The first page: the title, the project's name, the overview with the image. + expect(pages[0]).toEqual(['Filius-Dokumentation: einfaches_rechnernetz_komplett', 'einfaches_rechnernetz_komplett.fls', '1. ', 'Übersicht']); + expect(new TextDecoder('latin1').decode(bytes)).toContain('/Subtype /Image'); + // Then the devices: every computer and notebook, none of the switches. + const words = pages.flat(); + expect(words.filter((word) => /^2\.\d+\. $/.test(word)).length).toBe(9); + expect(words).toContain('Server'); + expect(words).not.toContain('Switch 1'); + expect(words).toEqual(expect.arrayContaining(['Installiert: ', 'Webserver, Text-Editor, Datei-Explorer, Bildbetrachter, DNS-Server, Befehlszeile', 'www.mein-server.de.', 'Nein'])); + // Then the data exchange: each card that saw frames, under its device's name and address. + const traffic = pages.findIndex((texts) => texts.includes('Datenaustausch')); + expect(traffic).toBeGreaterThan(1); + const rest = pages.slice(traffic).flat(); + expect(rest).toEqual(expect.arrayContaining(['3.1. ', 'Nr.', 'Bemerkungen / Details', 'DHCP', 'Anwendung'])); + expect(rest.some((word) => /^Notebook \d - /.test(word) || /^Server - 192\.168\.0\.100$/.test(word))).toBe(true); + expect(rest.some((word) => word.startsWith('DHCPDISCOVER'))).toBe(true); +}); diff --git a/packages/editor/package.json b/packages/editor/package.json index b29374a..26962d3 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -14,6 +14,7 @@ "@mdg-filius/fls": "0.0.0", "@mdg-filius/protocol": "0.0.0", "@mdg-filius/sim": "0.0.0", + "pdf-lib": "^1.17.1", "react": "18.3.1", "react-dom": "18.3.1", "yjs": "^13.6.33" diff --git a/packages/editor/src/Editor.tsx b/packages/editor/src/Editor.tsx index b94a7ec..d9ff6d0 100644 --- a/packages/editor/src/Editor.tsx +++ b/packages/editor/src/Editor.tsx @@ -28,6 +28,8 @@ import { removeDocumentation, removeLink, removeLinksOf, + reportCards, + reportDevices, setDocumentationColor, setDocumentationFont, setDocumentationFrame, @@ -50,6 +52,7 @@ import { DeviceSheet } from './sheet/DeviceSheet.js'; import { DesktopWindow, type DesktopWindowName } from './desktop/DesktopWindow.js'; import { useLanguage, useTranslate } from './i18n/i18n.js'; import { CaptureWindow } from './simulation/CaptureWindow.js'; +import { captureWords, reportTraffic } from './simulation/captureCells.js'; import { ModeBar, type EditorMode } from './simulation/ModeBar.js'; import { DropControl } from './simulation/DropControl.js'; import { ViewerWindow, type ViewerKind } from './simulation/ViewerWindow.js'; @@ -297,6 +300,16 @@ export function Editor({ doc, createSimHost, projectName }: EditorProps) { saveFile(await networkImage(view, names.footer), names.file); }; + /** „Report“: Java's report with the image, the devices and each card's frames so far, as a PDF under the project's name (pdf-lib loaded only now). */ + const makeReport = async () => { + const names = exportNames(projectName); + const cards = reportCards(doc); + const [image, frames, { reportPdf }] = await Promise.all([networkImage(view, names.footer), simulation.captures(cards.map((card) => card.portId)), import('./report/reportPdf.js')]); + const traffic = reportTraffic(cards, frames, simulation.clock, captureWords(t, language)); + const bytes = await reportPdf({ ...(projectName === undefined ? {} : { projectName }), png: new Uint8Array(await image.arrayBuffer()), image: { width: 0, height: 0 }, devices: reportDevices(doc), traffic, t }); + saveFile(new Blob([new Uint8Array(bytes)], { type: 'application/pdf' }), names.report); + }; + const changeMode = (mode: EditorMode) => { setDocumenting(mode === 'documentation'); if (mode === 'simulation') simulation.start(language); @@ -363,7 +376,7 @@ export function Editor({ doc, createSimHost, projectName }: EditorProps) { return (
{simulating ? null : documenting ? ( - + ) : ( 0s!>7A=Rc3P8 z>)o@=ntQxc@XL3q$6TO*Q;@?i=;qgl)cng}lhy))wqV|%mz)I8HvEcudo>4laMzw} z9z8MRnL9r7(+s5DT)hhmq@6i}npS1pc0}|X6@0jBrM&vOYs`H7@qX(#{-=#K_3_G& zPv!xa_t_zf4{KNNIkS(a6@1K{#ZOwcOCGYY(67hT3m%^FEali=ovOK*UEfaK2doBM z>brh0z7?Ra_)s8WCcq!`qCYrs!%P8x>w2o&++{+H=f)=RuJ@AdS8cZ5yJRjef3lxV zX=jg*4{(c$UPA2m#&4ha$%>n&H%RLeNJGpv_5<*Y>jq7i(M6ozF4v!VeC{U+H+~Nd za&s08<{&FD^+Ne-6flyx%JFNzg45TNx)tMCe8=)b<4>yXczp`L=WF|H1aDVebtm5C0cRZg_rdCj)IRCB{(4PfvMMDlmZGZQygx*3zAK`z`?q8 zd$*I2Qs9HXBwB!B0g6ggeeW+CvRIqM|Akc~vu-#U4TG=zD8QA5;4{Ulb!y^}(p9-2 z-W2b(W~e<@miGL)*8)mTQ+bX3Bj>K7=A(||B887SAG*(% zmVp8C6mF#{3Y1>&_R0(3BdR0*p_oPLSGAK7`GLi%(gi7&A`F5V=6Emj)HFrU4O6cdy+N6 zP!hmjCmMw@_=dyz*Ef+3=cI9u2lF5vp|0zxySkltlgsG*Ukff0eooc62^&o!IMDft zSAks>?E}Gm>RuD=#gv-)AsK$zSdDxW6u+oy-iy-k8`f-*ZeX^nM&TAsa$`fszG&)W zQ8;AID&(*qrt(9-zH4gf^lwP)1bo7AMKNtSYG{sXcpaC4WHyrqlO;P^&bMmLKOuv) z>f|)p=%gMJxey4sp?7+>ea|s#H50pn?5y?YE8wxI_odI>n(?ROXF|6l_QdoTfa?)?nB9Q{6hS&%cU(yZ7sU!gglFKm z_|wTB*`Oq`SDQaMbr6D|KV&7*$le8Up-prroWkP1;<;(e-j?*n_p*x6Wx2e|5c3Jm--Oq8zv-e00%D2R^%J0Zs-ZV_gDgB?ur> z8+EtFSuqc^#M=T~vkzX${d~>RFf1Dzvg& zWk$IcEL>|nK>lM_WMp1nO}Bl9OvN#K@2Li#8SQKDQYquX@9313i={p0MHS#z_T~;w zs=FZvEVb#y?1Orf@siCVQR|LMNQpUOQm3y>1Q9CbOi0lm^p);h4R z(y3~9Si8qf_W5y&it^5uz%sdv+>U+VgH@XIV~;zkB7crLKc?-GVOpSQ>1VO!m9qm! z@CDV@A(h8^>o#doD2DLmVdz$-@$)DBt}j&@+Xrd~8=pr%JRkX$p4F+cJIsTg;l4Mw zQB7;>n;+$5p2;h{GZjlHCl3x{H#?X%=dpJ&SbE;C>hl#Ie7!>j++g8$GKW18g=C8Ilq!v3?FKXOzT7)r7o|(?A5RRSmAk{ zH~>GDJz65VSvI5!>ji;+EamZ9eF|u}gltJf`@0AbNtw;{41Out^zgnnDZHfs^BzeCSOqatf;qUs3T0a+18@ z3PGZZgIgWQE`AQ%cCF3wT18v^8F52ynycRS%|$se0A>AAW*T2!<_W74Dh_Cm2!`}> z!Z@A)P#jR&P%Pu7rRj)atEK5jKjobbJXB2pU@pR?QWyXQ5iXLxqp@0|Lv)r&a+04R6ydwCqjug+n=1%khJVMZ7c}o!|6*7GOPyDNJB7F&{0B55D#7x|79Tsyw0P ztwplCRNvTUsL~Q>kxSq3_JP-Fg@buMhLHP7Z$h4a4Ik=K7^4#iT5GP?sdpK9Mds_{ zptWU2?HF~fm#>^w>h>{5MDvKNKO)AVdvgD)=_*c{1(C>0&_dPd-8d6<6&lTD3Ba%6 z)2U9pXa7;=B`GV*f{1_rFcM4Uj=|X;22jh4$gY(;qq@pVw`1a|^u-UMT5mbk`HX>3 zfp}#~^AVe-A*g z-Q{ukZ%PBU`cb~)Z;o`>%PL)HLb!EVCLD*EY?!|=ju&HN^<%^uau9yCS&tcbRZl|- znn{ym#F*wE!%gp#f8B0bhjfzc@34hMk>Z^;@;#@3{@P4+niRz}1ZbI;6+Owt8h2kt z>8OzHz!WAr8zPki8@ZkAM8j_(>1HuPUz62@^bA!Rv)@w{4@AJfN|Q`nY|VdVEfdg* zWI1}DrZ3f#f(rI#bWV6ABdGU;!p=W>8Bf#XzDG2q6gU?)*aW%lt*^XH;&&nla?(ME8%u;3UczSzq%1;F3;K z@FB3uA(5}dHF}9vPx|a+gd_>ddW%_EcC-hko3i#eviFyx2L8a}OLP;?$XY_@6hXr1 z-{ebf~Q2cZ?Q z!Gus;62z-=8Df)cf>n9PQeW$57adkRCuZ4P$GvTn;i5EhrRV#y-9zt{u%eG2S8evfn9ZC(CY5>8E@pjo){ns*#CUzsnx z%BEnLGFZ5wqzWWi)VKJQL~+z=_l8*qSQ0e_ zI6?t$RmwiqYUr*^scDl6e(Oc*m+ZeeN37q zOTlR*%*t4}r92y?O@b48bF}c8YSkJoM4QZi(g) zMcv*!YWZ&L=zOi5XlVp(99!aeB)U|C@>Aa#%dj@`EQ&Ky(G9Ri9HlVvdo0Kk2ckKr zw1A(~nK#o#mYZSmA#{z{y7<>qc4q^w>7pL2LY#BND^vWf*;`RTx)!vUE=juuOANW~ z%l)qvY=7`2+KX^8&}21sEZ5~zFs&#yIZZ{f^^-zuhVT+=Jf@5Iw;`W_YQYQy(W`jqzKd5pO&tckh@2Il^GG8Q|X4Q1_cCAoaAug~H z!~RPzT3yVi!6&r1J8A?GXMF`%C^t_(bQ%&C8X@@;xR`-FSuS>D`88`@J`)rYPRn9d zQ%KTAPR2S0Dqn|)t76|uLwU%PCE50z!@iu(MEmo{3}9?A_7zxO(HrqAkL^FldE^@5 z_ozn+XLEo}H8Bj=YOqpvRuxVB#ZNNBU=3E_0PCn?QMlcgJm&ADm!ARexhdewF{BD= zG#(c?-r8cJT(*--`INQfv^fg_Xm#Im(5!sOEjbOa{5>rs8D%j)g9ePNL%Mj>-%0C{ z%V@+ZACk*nhIv>`?vH9Xd{-m_eSNX>BezfS-6qeQl?=*_1xZR~iBQ}Mrm$G!@gzw? zQ#d>27AZLvONaZ#$$jat!4K~uij$(erB02s`gpDs;VklVron?Irs~`)rR;c(GNk1g zDq@F90SvPnBj!rbtLr7s$R7!YBj&y@Ek712rc*Zffm=|mzc39DB-4&Ejjm6jzngX` z?V$RUwA7uZVw7g0lya}5-L(^Oy;#cZ7b}f<5)G&7BOri3=`z5`tBkhItSWNuWAY$R zjkEhU25@BaxjubnEdZ6GH^0*!0A!o{P&q@jL+$hgYAY8!%8qL{Nf^M{i)1KUwbvjp znlro3vB}Rz>N6Csb(pGn8mFj_hIyrrzzP<6)T9}#wLa>v+YgmBT?`|cV6n`*r^KfO z79o0z-hGUOeO4w|FSk6#W#?S0guobPZu=sd?{f%y*P{xNy7;}JKK=F#m*vTnKy3_icC`HV^pt-rPn$>|EiC8{4-%`LN^P%fX8`3jD;QE zX@TY1UKthq-5!~r>`l6G<)bgY>a?=F$X+eIY+~%B`GvWOQEd@v$VsEVZIG2rCcXLh z=dK0CPcHyv)Dya8-mE1WaC7^C@U&YNW237SevHxhJl(CTB8B;dXIP?U5nhiOZT@Zjc*F5b%W4sm7L+Hdb-3+j7{Q7D^^$ahMLQk>iMlbqKdc+6v6 zf?i+4v5GvogYT2Ccby(5T`3XPT}~=IA_+E_%R5reF|VS18GoIB%&^v*m4996pEjHU zq%bdL5Pe>quj46jCa%k6sP(e&40MXgFJi+b^M+C{6#bYXjme4;;Qgb8OquN&x-$mP zh8eRM^CrZ*XgX$Cm!s0))t#$iB^Uj>Kn@ z%~Of8(&-A!<+qJVGTlO14)o9;?1lXb|WNsVA^p4OHfcoIA#9jT6?ynT$>^O)(14~KEhtF+ta zW3l&Cmf@LE!cj&0Og?Si_2wh!G`6Q!JQxe4v40^ah)kN~I#0tncMAKKUGT#9c!1~) z-)rw<;ON=Y(YtgYr(R0MNQw>qmfF1(o7brMs-OE3d3I z-{=X)QpLR{i1gzRP~_@Et@Y^9Tr6pfdOrC*SHf^nv$zqWcl#wl7FY5hnV^;=Z;@}I z1~V0#4J%ACQn|~_D^1mN1uI$c?V*=snB5dZ)i;=xjLHpqJWEWnTQ);Ai;qo4%vc8* zP6(w1lq6Nz4Rw&ERay*PW!M7G*n--G=qv}mh^Caw>_mvm4WLcwYj$XGQQ0hZ>JRMY zZYXj+euaFN8|C~lgG>P>5NKZ+rHR3#a;To*NAzq0h0-F7DT-~2+Fb`pyV!cK4f3gl zBDHGS1Yow}(J%C|E4@`ax!MTsNqGeLCf$0Kp)==(U5dwyhXPQ1tcUtj#&l(@2L zDPuNDBJws0zfxH{c%+0n)KJ@C`z@XjenEJP-&NM0h4jT>J{V3#SYsENNg}uzU%wt+ zZRIU9P7iuo9KnK=<*!c;vAlvk#kIM4q{zx&k^9t{&I>}(v?U{rw?El)=w1RXs$8 zME#rw{Fj!Sn>$Oc7BnMbmvso1CeKbW<<$)rc8zUDs+koM ziVk@*Y{;PzHR}mPhX%vZ=ZiZ1WS%BbnS}d!QZ%{j`x)9L$}qsYo{woa$P=X`NTq2_ zLYmVwM}_tWA1g8W)6BOxWDdc6xJl-!S-yJ}!YLS#!X?MupOV$;HJ5ONHhIRGKyu;p z)oMi65#?~(It;Uz(5`ST7T0tpNq*`c;k;PpMJxdteq`PqH2bOrOD_{8I6)HICVl3H zzMrlLRXAaltq8LZ4Zf63vuLwK{9PTsy$(_IQE|Q$Hh#=xpwp&7i~~JoLmHR*Q5E)x z-ja>^GMCs-Dn-R{%_kk%yFyI*@*-sfHl_5Y`##(WwPI*q)XZ!xySo=(KEa-L?7frm zTF_WfYD(OFIV)-}fJ&Hh&iMKlvb-)ni|vv` z91;4G%nax0E6LH4G@B|oMLb@n_7YM@T?@DhJm+yTK|dbbQ|I9&_)JwdO(hx5n~_)+ zgPgmeR;>hN2x`}*O9bpD2YaG23ie}2&*ckt#Lf*@3YXC?$c;{-ISWrq-PuFF2pey( zYc6MYUh;62$kvOqd-@y+7xgx0$`UpxQ@lg5bxmOwKXMVT4~an2e2C6km_69IeEs#| z-KA4d>-FJ}9R4+oXAQhvygmW5E06k`?`wy$AJ6xah&(rYJ;a9RFRIr>SHQXa@(^@9 zC-$18z@S6DsfWnXOFX8LPfHT*;p>QKMd3J&kwDx{snO~l&@>W%ypWn7?UGfGoP+3FE8e@8gB{Y zc7PgLD`I$s>M9vHh+4gVJ+A%&7dR~vhY^EEct>(LDanjMc zJ--HVn%(nk~#pgkksNNriBKw(AA;YDJK^6QM5)G zU;$&e`zM?2Zzq#zI>y9^yZh!IoRvRUO=<*MIx z(aT$OKBQ2dkkL+Jv!%0@7oMM%^bwG7v#HD>q$TIC4Au(_s52N(S=7QmgqYs=DjPiM zK|}R#t6E^;#2Y|o)0`MGEyNNXcs2S~n8qgM5RZ{=zjjADTgJZpLV~%9H5b!|qGIimPLLDz@MWQA^uoM&V|}eqairJOdxfI+Ymq@u z#1`&#FH~7 z2iMibHq`TBewc>E(;B2DUq>7IP>4;QDA;_0ipdB!mN^j$w3BH0kgq7%X~#&jf1$&A zO0PNpE&LL>@;!$h+mCW_Cao=TbmBpoP+pKxPnZO3vttx5hQG10IS!!xrM2-ke) z5dEk`W*`a;@d;z0{Tv*xUIc*!vD1^osY(T(fWrmtcW@${4z+D$D|cker}hmTD$=DL z74i~>dTbUwZja{3%A6D;2Y-B3dqQh%A0s<9@=dvteSx9W7}E%T|Y zm9=7QJ2bn>!>5e~#p0mMP8Jei3jR=rv*a(XT@&sv)}eEJkX@h1G!_IrTILJLZ@yk!Nq$g9*4nAl|YoO{t)|RRA#joW0AmA zYi5&nD7$K);6~H4MEuKQ4N;6#OQIL%JRPItf}8i}#;YGNHL1_N*Dm|t*`m5t?qJ=( zi^Q2Q4cI*1O~6X<*S>yr`B-Zh!$0HyjJ3UJ5czUH76R(&12fc%{a`>AaxR3?Rmg}? z3ulMMEzGi1znIdb{^@kYBH9tc=`TQ153^ydR@0QPy0S<9Zn=4&s1Ya&H`kc8 zJJ1smmX%q#{G&yc?3BqdfW_b zy!EB@zwO%a%bT5jGpNus*C*nX?yRARgl1{M0VZvp;IuI@mcHp zJMr3UwJrd+OuOiP&n29AK zh_Y?Q)^u~lsrkrh#I#H&U@(!INompPY&m?mfns{D+keR>+#~jLjGlS%@tLLcjmgUk za`q5PHI$N6C;buh_(tTR2rj8$00598 zU@|hAN-{G4_-BszQ=S``BBnSfNj+??QwAcH5~&olt`xSD(jC&O(Tu<@(zjda-@L(6 zqe>+qSLkns!$&L^`iG4SFbt#!Zvk#zZrYwH#1EMy&xd?nSCV`#X?>0XMf#T2U-=@^X}r}I9ongqBGuoNN`8M1yS2T1w+&@7^lN0B^Yj}9dc_TpncIf}A;h~Et1>w|&dboJGTS4W#q0XN4 z{|;eo^-q0QFL%d3;aFR7LLH$_2vHA&Rq%h9R8UgW{HMlm3T$Ccu79);WdDbxC(Pzw zWc`P4zeoOr^Y4xz)c=Y5AJYGb{f{t0N=;2z*2T)}w|h#mVxZslg{@tzVAjHaPA#p# zRzh4tmhAj|LVWDJ0=#_ef;Kz??A%a3L4H9lelVC9@^4T|&K{l+XDjG$C)uYN;WBcN;` zTu`VW!n~jrgqxigV$H=4v4ZljgP~S@0$>{UctavkB%G;^F~w@$(># zyu7@E{}R%Nx_clp@i!)zi-YGc+~3n8j0grnEaZ2dA^`qqAYu`gafd=YUEFnDTpYzf zzg+_U*8G#+K+(S@MG@wKknsDR@qg#M4%F?htG{jmN7$bsAn;Gx3PY^^GU5U8hFbqI zgwXqI$jT1lYzsx)-+w36Kl)++m&xLV@bTLSBIb!-$kLjf*V594T?lH)&(33M!w0bu z1oH_AK>rin!^Ota2jUKuvPDFShz5~Bf1&|0|DlrQKc#)_puc(I;^txJLSzx2E;pAj zFOM)EKPwlvFc%ky^Y4H;f8W*rh**^K|HFysAAx^c1`v9G^&yrQ#A?O)&*kcG&VJMQ z|8VcnXtkvGF0LOSr`Ly4su@lakI>B+#;HmnVH#ys6Mpstb!lr`424EyBbXw;2Hg;xg8?#+*k*nQP!^jeHl?Gb9_vpylyQrQ*ckOVi zz~!Kl6LX{fsmv*#{^VB=1|3$LFNF;t_tuVMvPunuNTH`s-tw6OrI|m|H5yvtdlhWg zdj65N*ee@Ot8at@yvfxs6&cojYbtoEhe`xYqm$)P!M<30!f~v^%B3^W8R=W2p>vj8 zP!~PE(igNx@CYET-mkGmuaQZFJIVd;q+`paybdE&mBt!_(VSaF+F?TwO}BLhmSG{f zMu%f$powOr!x#4m!o#j(COoh%&eUcB<-Zmt~I5V>MNTlkGFhQk=~aY`m)d0G3pr*udYerm=E zPH13htiutpaDD(IlGMe%5G2_6@L08ukT34wEITX7it{S=8IQkbo}$aBx<{JWknN&zf2JTFpUe#VB{XRI?Q!OH*bKv)TW z+ddgdSz(LCvNiO{`!@D+M&VsUaLzER!F>gFT-f#PL}kcjpE&NIXr6@TH!OmBLF?fwE8QNSc#G`_XV$k^sd zK(EJ25xD+^#nya;(#ymZkOF?!V>YisWA{R0Xqw%6Z1^KC0p1KxZ|Y3yg68&M;Ih+h zd%LxtsENoa%Jq}p$U5@b&LAGWV}5Ru7~<6v=5`^WD%*LUzAyayW$Gq*hn1^`vh`?V z`$r%+3p|N^`BYbTot>?eSLAW#L}W3uPQt?}6IP_mZb6sKboL;wL4En#BXGvP|A1uP z`3!^8<3r2GM!n4zsOWq8p7%!ZiuHMoP1E-A>pBU{UY>JeultSy)|N0_TVT zy6kbgJKXLS>|1{M`20gL?M<3Wv)87?DX!iu=8@PFLfBpUTh8w3;-8OCd_`eQWa`MR zWSmBTM&$|cIdOI3q11gFfzIr;gPPb~L$})0czWCFQGCeDJPEpR9^uSu%iA+}Vu~y>(wHya1S(@0>Mi7UbaZSaBqUtgyg~iG zxqp0YJCaC4zq-1*>}C2ON{v5Z^m11^hL~lmMsmur_v;WVGBrw0y~GEztzPxk82OU8 rSL;6S@0|&y{kzR5F;UA^Z#a`c!%pn|tkj6b8K5MmE?X~c5%zxo9Zj18 literal 0 HcmV?d00001 diff --git a/packages/editor/src/canvas/networkImage.ts b/packages/editor/src/canvas/networkImage.ts index df7107d..aa847a6 100644 --- a/packages/editor/src/canvas/networkImage.ts +++ b/packages/editor/src/canvas/networkImage.ts @@ -201,10 +201,11 @@ export function paintNetworkImage(context: Painter, view: TopologyView, icons: R return layout; } -/** The footer's words and the image's file name: the project's name and that name as a PNG, as Java names it after its file; without a name „Filius“. */ -export function exportNames(projectName: string | undefined): { readonly footer: string; readonly file: string } { +/** The footer's words and the files' names: the project's name, the image and the report named after it, as Java names them after its file; without a name „Filius“. */ +export function exportNames(projectName: string | undefined): { readonly footer: string; readonly file: string; readonly report: string } { const name = projectName?.trim() ?? ''; - if (name === '') return { footer: 'Filius', file: 'Filius.png' }; + if (name === '') return { footer: 'Filius', file: 'Filius.png', report: 'Filius.pdf' }; const dot = name.lastIndexOf('.'); - return { footer: name, file: `${dot > 0 ? name.slice(0, dot) : name}.png` }; + const stem = dot > 0 ? name.slice(0, dot) : name; + return { footer: name, file: `${stem}.png`, report: `${stem}.pdf` }; } diff --git a/packages/editor/src/design/DocumentationSidebar.tsx b/packages/editor/src/design/DocumentationSidebar.tsx index 772b2a7..21eb646 100644 --- a/packages/editor/src/design/DocumentationSidebar.tsx +++ b/packages/editor/src/design/DocumentationSidebar.tsx @@ -2,8 +2,9 @@ // and „Gliederungsfläche“ with Java's icons. An item is dragged onto the // surface, where it lands with its middle under the pointer, as Java's does; // tapped, it lands in the middle of the view (Java's tap makes nothing). -// „Exportieren“ saves the surface as an image (F4.8c); if that fails, Java's -// „Fehler beim Speichern aufgetreten!“ shows below it. +// „Exportieren“ saves the surface as an image (F4.8c), „Report“ the report as +// a PDF (F4.8d); if that fails, Java's „Fehler beim Speichern aufgetreten!“ +// shows below them. import { useRef, useState, type CSSProperties } from 'react'; import type { DocumentationItemKind } from '@mdg-filius/core'; @@ -12,12 +13,15 @@ import { useTranslate } from '../i18n/i18n.js'; import addRectangle from '../assets/documentation/add_small.png'; import addText from '../assets/documentation/add_text_small.png'; import exportIcon from '../assets/documentation/download_small.png'; +import reportIcon from '../assets/documentation/pdf_small.png'; export interface DocumentationSidebarProps { /** An item dropped at a point of the screen, or tapped (no point). */ readonly onItem: (kind: DocumentationItemKind, at: { readonly clientX: number; readonly clientY: number } | null) => void; /** „Exportieren“: the surface saved as an image; rejected, it failed. */ readonly onExport: () => Promise; + /** „Report“: the report saved as a PDF; rejected, it failed. */ + readonly onReport: () => Promise; } const ITEMS: readonly { readonly kind: DocumentationItemKind; readonly icon: string; readonly label: string }[] = [ @@ -44,7 +48,7 @@ const item: CSSProperties = { touchAction: 'none', }; -export function DocumentationSidebar({ onItem, onExport }: DocumentationSidebarProps) { +export function DocumentationSidebar({ onItem, onExport, onReport }: DocumentationSidebarProps) { const t = useTranslate(); const [ghost, setGhost] = useState<{ kind: DocumentationItemKind; x: number; y: number } | null>(null); const press = useRef<{ kind: DocumentationItemKind; x: number; y: number; dragging: boolean } | null>(null); @@ -52,10 +56,10 @@ export function DocumentationSidebar({ onItem, onExport }: DocumentationSidebarP const afterDrag = useRef(false); const [exporting, setExporting] = useState(false); const [failed, setFailed] = useState(false); - const exportImage = () => { + const save = (make: () => Promise) => () => { setExporting(true); setFailed(false); - onExport().then( + make().then( () => setExporting(false), () => { setExporting(false); @@ -124,10 +128,14 @@ export function DocumentationSidebar({ onItem, onExport }: DocumentationSidebarP {t(each.label)} ))} - + {failed ? (

{t('docu.saveFailed')} diff --git a/packages/editor/src/i18n/de.json b/packages/editor/src/i18n/de.json index b668435..4bdc699 100644 --- a/packages/editor/src/i18n/de.json +++ b/packages/editor/src/i18n/de.json @@ -109,6 +109,8 @@ "docu.fontSize": "Schriftgröße", "docu.fontStyle": "Schriftstil", "docu.rectangle": "Gliederungsfläche", + "docu.report": "Report", + "docu.reportHint": "Report als PDF-Dokument erstellen", "docu.saveFailed": "Fehler beim Speichern aufgetreten!", "docu.sidebar": "Dokumentation", "docu.sizeLarge": "Groß", @@ -350,6 +352,20 @@ "program.textEditor": "Text-Editor", "program.webBrowser": "Webbrowser", "program.webServer": "Webserver", + "report.apps": "Anwendungen", + "report.baseConfig": "Basiskonfiguration", + "report.components": "Komponenten", + "report.data": "Daten", + "report.dnsRecords": "Konfiguration DNS-Server", + "report.domain": "Domainname", + "report.nics": "Netzwerkschnittstellen", + "report.no": "Nein", + "report.overview": "Übersicht", + "report.routingTable": "Weiterleitungstabelle", + "report.title": "Filius-Dokumentation", + "report.traffic": "Datenaustausch", + "report.type": "Typ", + "report.yes": "Ja", "route.destinationNetwork": "Ziel", "route.gateway": "Nächstes Gateway", "route.interfaceIPAddress": "Über Schnittstelle", diff --git a/packages/editor/src/i18n/en.json b/packages/editor/src/i18n/en.json index 0141aa1..22fa217 100644 --- a/packages/editor/src/i18n/en.json +++ b/packages/editor/src/i18n/en.json @@ -109,6 +109,8 @@ "docu.fontSize": "Font Size", "docu.fontStyle": "Font Style", "docu.rectangle": "Structure Field", + "docu.report": "Report", + "docu.reportHint": "Create report as PDF document", "docu.saveFailed": "Error occurred!", "docu.sidebar": "Documentation", "docu.sizeLarge": "Large", @@ -350,6 +352,20 @@ "program.textEditor": "Text editor", "program.webBrowser": "Webbrowser", "program.webServer": "Webserver", + "report.apps": "Applications", + "report.baseConfig": "Base Configuration", + "report.components": "Components", + "report.data": "Data", + "report.dnsRecords": "Configuration DNS Server", + "report.domain": "Domain Name", + "report.nics": "Network Interfaces", + "report.no": "No", + "report.overview": "Overview", + "report.routingTable": "Routing/Forwarding Table", + "report.title": "Filius Documentation", + "report.traffic": "Data Exchange", + "report.type": "Type", + "report.yes": "Yes", "route.destinationNetwork": "Destination", "route.gateway": "Next gateway", "route.interfaceIPAddress": "NIC", diff --git a/packages/editor/src/report/report.ts b/packages/editor/src/report/report.ts new file mode 100644 index 0000000..33ee7bb --- /dev/null +++ b/packages/editor/src/report/report.ts @@ -0,0 +1,181 @@ +// FILIUS' report (ReportGenerator, measured with tools/java-oracle's +// ReportRun), laid out as Java lays it out: the title (Java's word and the +// project's name), the project's name small below it; „1. Übersicht“ with the +// exported image; on a new page „2. Komponenten“ with each device that has +// cards — its base configuration, its cards, a computer's programs, a DNS +// server's records, its forwarding table, a home router's port forwarding —; +// on a new page „3. Datenaustausch“ with each card that saw frames, its rows +// as the data exchange window has them with addresses (Lauscher.getDaten +// with inheritAddress). Fonts, sizes and colours are Java's. +// +// Not adopted from Java: "true" and "false" for DHCP — Java's own „Ja“ and +// „Nein“ (main_dlg_YES, main_dlg_NO) instead. The programs are in the order +// they were installed and the cards in the order of the devices (Java's are +// in the order of a hash table). Below the title the project's name, not a +// path, which no browser knows. + +import type { ReportDevice } from '@mdg-filius/doc'; +import { ReportWriter, type ReportFonts, type ReportOp, type Rgb, type TableCell, type TextStyle } from './reportWriter.js'; + +const BLACK: Rgb = [0, 0, 0]; +/** BaseColor.DARK_GRAY. */ +const DARK_GRAY: Rgb = [64, 64, 64]; +const TITLE_COLOR: Rgb = [30, 50, 120]; +const TRAFFIC_HEADER: Rgb = [230, 240, 255]; +const TRAFFIC_STRIPE: Rgb = [240, 240, 240]; + +export const SMALL_FONT: TextStyle = { font: 'Helvetica', size: 8, color: BLACK }; +export const SMALL_BOLD_FONT: TextStyle = { font: 'Helvetica-Bold', size: 8, color: BLACK }; +export const BOLD_FONT: TextStyle = { font: 'Helvetica-Bold', size: 10, color: BLACK }; +export const DEFAULT_FONT: TextStyle = { font: 'Helvetica', size: 10, color: BLACK }; +export const TITLE_FONT: TextStyle = { font: 'Helvetica-Bold', size: 18, color: TITLE_COLOR }; +/** A section's heading: 16 less twice its depth. */ +export const sectionFont = (level: 1 | 2 | 3): TextStyle => ({ font: 'Helvetica-Bold', size: 16 - 2 * level, color: DARK_GRAY }); + +/** The columns of the data exchange (Lauscher's), fixed. */ +export const TRAFFIC_WIDTHS = [20, 60, 80, 80, 40, 50, 180] as const; + +export interface ReportInput { + /** The project's name, its file's. */ + readonly projectName?: string; + /** The exported image's size in pixels. */ + readonly image: { readonly width: number; readonly height: number }; + readonly devices: readonly ReportDevice[]; + /** The cards that saw frames: the heading („name - address“) and the rows' cells. */ + readonly traffic: readonly { readonly title: string; readonly header: readonly string[]; readonly rows: readonly (readonly string[])[] }[]; + /** The editor's words. */ + readonly t: (key: string) => string; +} + +/** The report's title: Java's word and, with a name, the name without its extension. */ +export function reportTitle(t: (key: string) => string, projectName: string | undefined): string { + const name = projectName?.trim() ?? ''; + if (name === '') return t('report.title'); + const dot = name.lastIndexOf('.'); + return `${t('report.title')}: ${dot >= 0 ? name.slice(0, dot) : name}`; +} + +/** The report's pages, as Java's ReportGenerator adds to its document. */ +export function reportPages(input: ReportInput, fonts: ReportFonts): ReportOp[][] { + const { t } = input; + const writer = new ReportWriter(fonts); + const numbers = { first: 0, second: 0 }; + // Section.constructTitle: the first level numbered "1. ", the second "1.2. ", the third not. + const section = (title: string, level: 1 | 2 | 3) => { + let number = ''; + if (level === 1) { + numbers.first += 1; + numbers.second = 0; + number = `${numbers.first}. `; + } else if (level === 2) { + numbers.second += 1; + number = `${numbers.first}.${numbers.second}. `; + } + const style = sectionFont(level); + writer.paragraph( + number === '' + ? [{ text: title, style }] + : [ + { text: number, style }, + { text: title, style }, + ], + ); + }; + const header = (text: string): TableCell => ({ text, style: BOLD_FONT }); + const cell = (text: string): TableCell => ({ text, style: DEFAULT_FONT }); + + writer.paragraph([{ text: reportTitle(t, input.projectName), style: TITLE_FONT }], 'center'); + const name = input.projectName?.trim() ?? ''; + if (name !== '') writer.chunk(name, SMALL_FONT); + writer.newline(); + + section(t('report.overview'), 1); + writer.image(input.image); + writer.nextPage(); + + section(t('report.components'), 1); + for (const device of input.devices) { + section(device.label, 2); + section(t('report.baseConfig'), 3); + const base = [ + [header(t('sheet.defaultGateway')), cell(device.gateway)], + [header(t('sheet.dnsServer')), cell(device.dnsServer)], + ]; + if (device.dhcpClient !== undefined) base.push([header(t('sheet.dhcpClient')), cell(t(device.dhcpClient ? 'report.yes' : 'report.no'))]); + writer.table({ widths: [180, 360], align: 'left', rows: base }); + writer.newline(); + + section(t('report.nics'), 3); + writer.table({ + widths: [180, 180, 180], + align: 'left', + rows: [ + [header(t('sheet.macAddress')), header(t('sheet.ipAddress')), header(t('sheet.subnetMask'))], + ...device.cards.map((card) => [cell(card.macAddress), cell(card.ipAddress), cell(card.subnetMask)]), + ], + }); + writer.newline(); + + if (device.programs !== undefined) { + section(t('report.apps'), 3); + writer.chunk(`${t('installation.installed')} `, BOLD_FONT); + writer.chunk(device.programs.length === 0 ? '-' : device.programs.map((program) => t(`program.${program}`)).join(', '), DEFAULT_FONT); + writer.newline(); + writer.newline(); + } + + if (device.dnsRecords !== undefined) { + section(t('report.dnsRecords'), 3); + writer.table({ + widths: [180, 60, 260], + align: 'left', + rows: [ + [header(t('report.domain')), header(t('report.type')), header(t('report.data'))], + ...device.dnsRecords.map((record) => [cell(record.domainName), cell(record.type), cell(record.rdata)]), + ], + }); + writer.newline(); + } + + section(t('report.routingTable'), 3); + writer.table({ + widths: [180, 180, 180, 180], + align: 'left', + rows: [ + [header(t('route.destinationNetwork')), header(t('route.subnetMask')), header(t('route.gateway')), header(t('route.interfaceIPAddress'))], + ...device.routes.map((route) => [cell(route.destinationNetwork), cell(route.subnetMask), cell(route.nextHop), cell(route.interfaceIPAddress)]), + ], + }); + writer.newline(); + + if (device.portForwarding !== undefined && device.portForwarding.length > 0) { + section(t('sheet.portForwarding'), 3); + writer.table({ + widths: [180, 180, 180, 180], + align: 'left', + rows: [ + [header(t('forwarding.protocolValue')), header(t('forwarding.publicPortValue')), header(t('forwarding.lanIPAddress')), header(t('forwarding.lanPortValue'))], + ...device.portForwarding.map((row) => row.map(cell)), + ], + }); + writer.newline(); + } + } + writer.nextPage(); + + if (input.traffic.length > 0) section(t('report.traffic'), 1); + for (const card of input.traffic) { + section(card.title, 2); + writer.table({ + widths: TRAFFIC_WIDTHS, + fixed: true, + align: 'center', + rows: [ + card.header.map((text) => ({ text, style: SMALL_BOLD_FONT, background: TRAFFIC_HEADER })), + ...card.rows.map((row, index) => row.map((text): TableCell => (index % 2 === 1 ? { text, style: SMALL_FONT, background: TRAFFIC_STRIPE } : { text, style: SMALL_FONT }))), + ], + }); + writer.newline(); + } + return writer.finish(); +} diff --git a/packages/editor/src/report/reportPdf.ts b/packages/editor/src/report/reportPdf.ts new file mode 100644 index 0000000..9296df0 --- /dev/null +++ b/packages/editor/src/report/reportPdf.ts @@ -0,0 +1,61 @@ +// The report as a PDF file, with pdf-lib: the pages report.ts lays out drawn +// in the PDF's own Helvetica (as iText's report has it, without embedding a +// font), the exported image on the first. Widths are measured character by +// character, without kerning, as iText measures and as pdf-lib draws (its +// widthOfTextAtSize kerns). A character Helvetica cannot write (it writes +// Windows-1252) is written "?". + +import { PDFDocument, rgb, StandardFonts, type PDFFont } from 'pdf-lib'; +import { reportPages, reportTitle, type ReportInput } from './report.js'; +import type { ReportFont, ReportFonts, ReportOp } from './reportWriter.js'; + +/** ReportGenerator.initDocument's creator. */ +export const REPORT_CREATOR = 'Filius (www.lernsoftware-filius.de)'; + +/** The fonts' measures and what they can write. */ +export function pdfFonts(fonts: Readonly>): ReportFonts { + const writable = new Set(fonts.Helvetica.getCharacterSet()); + const widths = new Map(); + const width = (character: string, font: ReportFont) => { + const key = `${font}\u0000${character}`; + let known = widths.get(key); + if (known === undefined) { + known = fonts[font].widthOfTextAtSize(character, 1000); + widths.set(key, known); + } + return known; + }; + return { + width: (text, font, size) => { + let sum = 0; + for (const character of text) sum += width(character, font); + return (sum * size) / 1000; + }, + clean: (text) => [...text.replaceAll('\t', ' ')].map((character) => (writable.has(character.codePointAt(0)!) ? character : '?')).join(''), + }; +} + +/** The report as a PDF: its pages, the image (a PNG) on the first, Java's title and creator. */ +export async function reportPdf(input: ReportInput & { readonly png: Uint8Array }, date: Date = new Date()): Promise { + const pdf = await PDFDocument.create(); + const fonts: Record = { + Helvetica: await pdf.embedFont(StandardFonts.Helvetica), + 'Helvetica-Bold': await pdf.embedFont(StandardFonts.HelveticaBold), + }; + const image = await pdf.embedPng(input.png); + const pages = reportPages({ ...input, image: { width: image.width, height: image.height } }, pdfFonts(fonts)); + pdf.setTitle(reportTitle(input.t, input.projectName)); + pdf.setCreator(REPORT_CREATOR); + pdf.setCreationDate(date); + pdf.setModificationDate(date); + const color = ([red, green, blue]: readonly number[]) => rgb(red! / 255, green! / 255, blue! / 255); + for (const ops of pages) { + const page = pdf.addPage([595, 842]); + for (const op of ops as readonly ReportOp[]) { + if (op.kind === 'text') page.drawText(op.text, { x: op.x, y: op.y, size: op.size, font: fonts[op.font], color: color(op.color) }); + else if (op.kind === 'rect') page.drawRectangle({ x: op.x, y: op.y, width: op.width, height: op.height, color: color(op.color) }); + else page.drawImage(image, { x: op.x, y: op.y, width: op.width, height: op.height }); + } + } + return pdf.save(); +} diff --git a/packages/editor/src/report/reportWriter.ts b/packages/editor/src/report/reportWriter.ts new file mode 100644 index 0000000..10a0e9e --- /dev/null +++ b/packages/editor/src/report/reportWriter.ts @@ -0,0 +1,262 @@ +// The page layout of FILIUS' report, as iText 5 lays out what Java's +// ReportGenerator adds to its Document (measured with tools/java-oracle's +// ReportRun): A4 with 36 to spare around; a paragraph's lines 1.5 times its +// largest font apart, and loose text (a chunk added to the document) in the +// current line, at the last paragraph's spacing, until a new line ends it; +// lines broken after a space or a hyphen, a word wider than the line where +// it reaches the edge; a line that would end below the margin begins the +// next page. A table is 80 % of the width (or as wide as its columns when +// they are fixed), its columns in proportion, each cell's text 2 inside it, +// its lines as far apart as its font is large; a row that would end below +// the margin begins the next page. An image is as wide as the page, half a +// line below the last one. What is laid out is a list of pages of things to +// draw, in PDF coordinates (from the bottom up). +// +// Better than Java: an image taller than the rest of the page begins the +// next one, and one taller than a page is made smaller to fit (iText draws +// it beyond the page's edge). + +export type ReportFont = 'Helvetica' | 'Helvetica-Bold'; +export type Rgb = readonly [number, number, number]; + +export interface TextStyle { + readonly font: ReportFont; + readonly size: number; + readonly color: Rgb; +} + +export type ReportOp = + | { readonly kind: 'text'; readonly text: string; readonly x: number; readonly y: number; readonly font: ReportFont; readonly size: number; readonly color: Rgb } + | { readonly kind: 'rect'; readonly x: number; readonly y: number; readonly width: number; readonly height: number; readonly color: Rgb } + | { readonly kind: 'image'; readonly x: number; readonly y: number; readonly width: number; readonly height: number }; + +/** How wide a text is in a font (without kerning, as iText measures), and the text as the font can write it. */ +export interface ReportFonts { + readonly width: (text: string, font: ReportFont, size: number) => number; + readonly clean: (text: string) => string; +} + +export interface TableCell { + readonly text: string; + readonly style: TextStyle; + readonly background?: Rgb; +} + +export interface TableSpec { + /** The columns' widths: in proportion, or fixed when `fixed`. */ + readonly widths: readonly number[]; + readonly fixed?: boolean; + readonly align: 'left' | 'center'; + readonly rows: readonly (readonly TableCell[])[]; +} + +/** PageSize.A4 and Document's margins. */ +export const PAGE_WIDTH = 595; +export const PAGE_HEIGHT = 842; +export const MARGIN = 36; +const TOP = PAGE_HEIGHT - MARGIN; +const BOTTOM = MARGIN; +const LEFT = MARGIN; +const WIDTH = PAGE_WIDTH - 2 * MARGIN; +/** PdfPTable's width without a fixed one: 80 % of the page's. */ +const TABLE_SHARE = 0.8; +/** PdfPCell's padding. */ +const PADDING = 2; + +/** Words in a style, as a paragraph or a chunk takes them. */ +export interface Words { + readonly text: string; + readonly style: TextStyle; +} + +interface Piece extends Words { + /** The chunk it is of: a line draws each chunk's part as one text, as iText does. */ + readonly chunk: number; +} + +/** A text's pieces to break a line after: up to and with each space or hyphen. */ +const breakable = (text: string) => text.match(/[^ -]*[ -]|[^ -]+/g) ?? []; + +export class ReportWriter { + private readonly pages: ReportOp[][] = [[]]; + private y = TOP; + /** The spacing of loose text: the last paragraph's. */ + private leading = 0; + private pending: Piece[] = []; + + constructor(private readonly fonts: ReportFonts) {} + + private get page(): ReportOp[] { + return this.pages[this.pages.length - 1]!; + } + + private newPage(): void { + this.pages.push([]); + this.y = TOP; + } + + private width(piece: Words): number { + return this.fonts.width(piece.text, piece.style.font, piece.style.size); + } + + /** Pieces broken into lines of a width. */ + private lines(pieces: readonly Piece[], width: number): Piece[][] { + const lines: Piece[][] = []; + let line: Piece[] = []; + let used = 0; + const push = () => { + lines.push(line); + line = []; + used = 0; + }; + for (const piece of pieces) { + for (const part of breakable(piece.text)) { + const word = { text: part, style: piece.style, chunk: piece.chunk }; + const fits = used + this.width({ ...word, text: part.trimEnd() }) <= width; + if (fits) { + line.push(word); + used += this.width(word); + continue; + } + if (line.length > 0) push(); + // On a line of its own, broken where it reaches the edge (a word that fits is not). + for (const character of part) { + const one = { text: character, style: piece.style, chunk: piece.chunk }; + if (line.length > 0 && used + this.width({ ...one, text: character.trimEnd() }) > width) push(); + line.push(one); + used += this.width(one); + } + } + } + if (line.length > 0 || lines.length === 0) push(); + return lines; + } + + /** A line's pieces as texts to draw: one per run of a style, without the spaces at its end. */ + private runs(line: readonly Piece[]): Piece[] { + const runs: Piece[] = []; + for (const piece of line) { + const last = runs[runs.length - 1]; + if (last !== undefined && last.chunk === piece.chunk) runs[runs.length - 1] = { text: last.text + piece.text, style: last.style, chunk: last.chunk }; + else runs.push(piece); + } + while (runs.length > 0) { + const last = runs[runs.length - 1]!; + const text = last.text.trimEnd(); + if (text !== '') { + runs[runs.length - 1] = { text, style: last.style, chunk: last.chunk }; + break; + } + runs.pop(); + } + return runs; + } + + /** Writes lines at a spacing, each a line below the last, on the next page where it would end below the margin. */ + private writeLines(lines: readonly Piece[][], leading: number, align: 'left' | 'center'): void { + for (const line of lines) { + if (this.y - leading < BOTTOM) this.newPage(); + this.y -= leading; + const runs = this.runs(line); + const used = runs.reduce((sum, run) => sum + this.width(run), 0); + let x = align === 'center' ? LEFT + (WIDTH - used) / 2 : LEFT; + for (const run of runs) { + this.page.push({ kind: 'text', text: run.text, x, y: this.y, font: run.style.font, size: run.style.size, color: run.style.color }); + x += this.width(run); + } + } + } + + /** Ends the current line of loose text, if there is one. */ + private endPending(evenEmpty: boolean): void { + if (this.pending.length === 0 && !evenEmpty) return; + this.writeLines(this.lines(this.pending, WIDTH), this.leading, 'left'); + this.pending = []; + } + + private chunks = 0; + + /** The pieces as the fonts write them, each its own chunk. */ + private clean(pieces: readonly Words[]): Piece[] { + return pieces.map((piece) => ({ text: this.fonts.clean(piece.text), style: piece.style, chunk: this.chunks++ })); + } + + /** A paragraph (Paragraph): its own lines, 1.5 times its largest font apart; that spacing goes on for loose text. */ + paragraph(pieces: readonly Words[], align: 'left' | 'center' = 'left'): void { + this.endPending(false); + this.leading = 1.5 * Math.max(...pieces.map((piece) => piece.style.size)); + this.writeLines(this.lines(this.clean(pieces), WIDTH), this.leading, align); + } + + /** Loose text (a Chunk added to the document): in the current line. */ + chunk(text: string, style: TextStyle): void { + this.pending.push(...this.clean([{ text, style }])); + } + + /** A new line (Chunk.NEWLINE): ends the current line, an empty one too. */ + newline(): void { + this.endPending(true); + } + + /** A table (PdfPTable), row by row; a row that would end below the margin begins the next page. */ + table(spec: TableSpec): void { + this.endPending(false); + const total = spec.fixed === true ? spec.widths.reduce((sum, each) => sum + each, 0) : WIDTH * TABLE_SHARE; + const sum = spec.widths.reduce((all, each) => all + each, 0); + const widths = spec.widths.map((each) => (spec.fixed === true ? each : (each / sum) * total)); + const left = spec.align === 'center' ? LEFT + (WIDTH - total) / 2 : LEFT; + for (const row of spec.rows) { + const cells = row.map((cell, index) => { + const lines = cell.text.split('\n').flatMap((part) => this.lines(this.clean([{ text: part, style: cell.style }]), widths[index]! - 2 * PADDING)); + return { cell, lines }; + }); + // A cell's lines as far apart as its font is large. + const height = 2 * PADDING + Math.max(...cells.map(({ cell, lines }) => lines.length * cell.style.size)); + if (this.y - height < BOTTOM) this.newPage(); + let x = left; + cells.forEach(({ cell, lines }, index) => { + if (cell.background !== undefined) this.page.push({ kind: 'rect', x, y: this.y - height, width: widths[index]!, height, color: cell.background }); + lines.forEach((line, number) => { + const y = this.y - PADDING - (number + 1) * cell.style.size; + let at = x + PADDING; + for (const run of this.runs(line)) { + this.page.push({ kind: 'text', text: run.text, x: at, y, font: run.style.font, size: run.style.size, color: run.style.color }); + at += this.width(run); + } + }); + x += widths[index]!; + }); + this.y -= height; + } + } + + /** An image (Image scaled to the page's width), half a line below the last line. */ + image(pixels: { readonly width: number; readonly height: number }): void { + this.endPending(false); + let width = WIDTH; + let height = (WIDTH * pixels.height) / pixels.width; + let top = this.y - this.leading / 2; + if (top - height < BOTTOM && this.page.length > 0) { + this.newPage(); + top = this.y - this.leading / 2; + } + if (top - height < BOTTOM) { + height = top - BOTTOM; + width = (height * pixels.width) / pixels.height; + } + this.page.push({ kind: 'image', x: LEFT, y: top - height, width, height }); + this.y = top - height; + } + + /** A new page (Chunk.NEXTPAGE). */ + nextPage(): void { + this.endPending(false); + this.newPage(); + } + + /** The pages, the last one without an empty end. */ + finish(): ReportOp[][] { + this.endPending(false); + return this.page.length === 0 && this.pages.length > 1 ? this.pages.slice(0, -1) : [...this.pages]; + } +} diff --git a/packages/editor/src/simulation/captureCells.ts b/packages/editor/src/simulation/captureCells.ts index f351d50..c3fb5bd 100644 --- a/packages/editor/src/simulation/captureCells.ts +++ b/packages/editor/src/simulation/captureCells.ts @@ -69,3 +69,23 @@ export function exportText(frames: readonly TraceFrame[], clock: number, words: frames.map((frame) => frameCells(frame, clock, words)), ); } + +/** The card's rows as the report writes them (Lauscher.getDaten with addresses): every layer's row of every frame, seven cells each. */ +export function reportRows(frames: readonly TraceFrame[], clock: number, words: CaptureWords): string[][] { + return frames.flatMap((frame) => + frame.rows.map((row) => [String(row.number), timeOfDay(clock, row.timeMilliseconds, true), row.source ?? '', row.destination ?? '', row.protocol, words.layers[row.layer], commentOf(row, words)]), + ); +} + +/** The report's data exchange: each card that saw frames, under its device's label and its address, with its rows. */ +export function reportTraffic( + cards: readonly { readonly portId: string; readonly label: string; readonly ipAddress: string }[], + frames: ReadonlyMap, + clock: number, + words: CaptureWords, +): { title: string; header: readonly string[]; rows: string[][] }[] { + return cards.flatMap((card) => { + const seen = frames.get(card.portId) ?? []; + return seen.length === 0 ? [] : [{ title: `${card.label} - ${card.ipAddress}`, header: words.header, rows: reportRows(seen, clock, words) }]; + }); +} diff --git a/packages/editor/src/simulation/useSimulation.ts b/packages/editor/src/simulation/useSimulation.ts index b415ed9..64f7791 100644 --- a/packages/editor/src/simulation/useSimulation.ts +++ b/packages/editor/src/simulation/useSimulation.ts @@ -57,6 +57,8 @@ export interface Simulation { clearCapture(): void; /** Watches these topics until the returned function is called; a topic two parts watch is sent for once. */ watch(topics: readonly Topic[]): () => void; + /** Every frame of these cards so far, as the room has them now (for the report); rejected if the room does not answer within 10 s. */ + captures(portIds: readonly string[]): Promise>; /** An action in a program's window (the room answers with its new lines). */ act(node: string, app: AppKind, action: string, args?: Readonly>): void; } @@ -66,6 +68,8 @@ const NO_LINKS: ReadonlySet = new Set(); export function useSimulation(doc: Y.Doc, createHost: SimHostFactory = localSimHost): Simulation { const host = useRef(null); const watched = useRef(new Map()); + /** The cards a report waits for: each answered with all its frames once subscribed anew. */ + const awaiting = useRef(new Set<{ readonly wanted: ReadonlySet; readonly got: Map; readonly done: () => void }>()); const [mode, setMode] = useState('design'); const [speed, setSpeedState] = useState(100); const [activeLinks, setActiveLinks] = useState>(NO_LINKS); @@ -104,6 +108,13 @@ export function useSimulation(doc: Y.Doc, createHost: SimHostFactory = localSimH }); return; case 'trace': + if (message.reset) { + for (const each of awaiting.current) { + if (!each.wanted.has(message.portId)) continue; + each.got.set(message.portId, message.frames); + if (each.got.size === each.wanted.size) each.done(); + } + } setTraces((before) => new Map(before).set(message.portId, message.reset ? message.frames : (before.get(message.portId) ?? []).concat(message.frames))); return; case 'dropped': @@ -153,9 +164,40 @@ export function useSimulation(doc: Y.Doc, createHost: SimHostFactory = localSimH }; }, []); + const captures = useCallback((portIds: readonly string[]) => { + const made = host.current; + const wanted = new Set(portIds); + if (made === null || wanted.size === 0) return Promise.resolve(new Map()); + return new Promise>((resolve, reject) => { + const topics = [...wanted].map((portId): Topic => `trace:${portId}`); + const finish = () => { + clearTimeout(timer); + awaiting.current.delete(request); + // What no window watches is let go again; what one does stays. + const unwatched = topics.filter((topic) => !watched.current.has(topic)); + if (unwatched.length > 0) host.current?.send({ v: 1, kind: 'unsub', topics: unwatched }); + }; + const request = { + wanted, + got: new Map(), + done: () => { + finish(); + resolve(request.got); + }, + }; + const timer = setTimeout(() => { + finish(); + reject(new Error('the room sent no frames')); + }, 10_000); + awaiting.current.add(request); + // Subscribed anew, even where a window watches: the room answers each with all its frames. + made.send({ v: 1, kind: 'sub', topics }); + }); + }, []); + const act = useCallback((node: string, app: AppKind, action: string, args: Readonly> = {}) => { host.current?.send({ v: 1, kind: 'input', node, app, action, args, reqId: crypto.randomUUID() }); }, []); - return { mode, speed, activeLinks, nodes, apps, views, failed, clock, dropped, traces, start, stop, setSpeed, drop, clearCapture, watch, act }; + return { mode, speed, activeLinks, nodes, apps, views, failed, clock, dropped, traces, start, stop, setSpeed, drop, clearCapture, watch, captures, act }; } diff --git a/packages/editor/test/captureCells.test.ts b/packages/editor/test/captureCells.test.ts index edd1b9f..cdea657 100644 --- a/packages/editor/test/captureCells.test.ts +++ b/packages/editor/test/captureCells.test.ts @@ -7,7 +7,7 @@ import { describe, expect, it } from 'vitest'; import { captureRows, TCP_FLAG, type CapturedFrame, type EthernetFrame } from '@mdg-filius/core'; import type { TraceFrame } from '@mdg-filius/protocol'; import { translate } from '../src/i18n/i18n.js'; -import { captureWords, exportText, frameCells, frameDetails } from '../src/simulation/captureCells.js'; +import { captureWords, exportText, frameCells, frameDetails, reportRows, reportTraffic } from '../src/simulation/captureCells.js'; /** A TCP segment with data from 10.0.0.1:50000 to 10.0.0.2:80, as the room sends it. */ function frame(number: number, timeMilliseconds: number): TraceFrame { @@ -76,3 +76,26 @@ describe("the data exchange window's cells", () => { expect(text.match(/^\+-/gm)).toHaveLength(2); }); }); + +describe("the report's data exchange", () => { + it('writes every layer of a frame as a row, with addresses, as Java\'s report does', () => { + expect(reportRows([frame(3, 1_234)], clock, words('de'))).toEqual([ + ['3', '08:30:01.234', '02:00:00:00:00:01', '02:00:00:00:00:02', '', 'Netzzugang', '0x800'], + ['3', '08:30:01.234', '10.0.0.1', '10.0.0.2', 'IP', 'Vermittlung', 'Protokoll: 6, TTL: 64'], + ['3', '08:30:01.234', '10.0.0.1:50000', '10.0.0.2:80', 'TCP', 'Transport', 'SEQ: 2.000.001, ACK: 1.000.001'], + ['3', '08:30:01.234', '10.0.0.1:50000', '10.0.0.2:80', 'HTTP', 'Anwendung', 'GET / HTTP/1.1\nHost: x\n'], + ]); + }); + + it("lists each card that saw frames, under its device's label and address; one without frames not", () => { + const cards = [ + { portId: 'a', label: 'Rechner 1', ipAddress: '10.0.0.1' }, + { portId: 'b', label: 'Rechner 2', ipAddress: '10.0.0.2' }, + { portId: 'c', label: 'Rechner 3', ipAddress: '10.0.0.3' }, + ]; + const traffic = reportTraffic(cards, new Map([['a', [frame(1, 0)]], ['b', []]]), clock, words('de')); + expect(traffic.map((card) => card.title)).toEqual(['Rechner 1 - 10.0.0.1']); + expect(traffic[0]!.header).toEqual(words('de').header); + expect(traffic[0]!.rows.length).toBe(4); + }); +}); diff --git a/packages/editor/test/i18n.test.ts b/packages/editor/test/i18n.test.ts index b95ea72..69e925f 100644 --- a/packages/editor/test/i18n.test.ts +++ b/packages/editor/test/i18n.test.ts @@ -258,6 +258,22 @@ const FROM_JAVA: Readonly> = { 'docu.color': 'guievents_msg13', 'docu.export': 'docusidebar_msg5', 'docu.exportHint': 'docusidebar_msg6', + 'docu.report': 'docusidebar_msg7', + 'docu.reportHint': 'docusidebar_msg8', + 'report.title': 'report_title', + 'report.overview': 'report_overview', + 'report.components': 'report_component_config', + 'report.baseConfig': 'report_base_config', + 'report.nics': 'report_nics', + 'report.apps': 'report_apps', + 'report.routingTable': 'report_routing_table', + 'report.traffic': 'report_network_traffic', + 'report.dnsRecords': 'report_dns_rr', + 'report.domain': 'report_domain', + 'report.type': 'report_type', + 'report.data': 'report_data', + 'report.yes': 'main_dlg_YES', + 'report.no': 'main_dlg_NO', 'capture.title': 'lauscherdialog_msg1', 'capture.number': 'rp_lauscher_msg1', 'capture.time': 'rp_lauscher_msg2', diff --git a/packages/editor/test/networkImage.test.ts b/packages/editor/test/networkImage.test.ts index 9cff215..b35217c 100644 --- a/packages/editor/test/networkImage.test.ts +++ b/packages/editor/test/networkImage.test.ts @@ -144,16 +144,16 @@ describe('the words of a text in the image', () => { }); describe("the image's names", () => { - it("writes the project's name in the footer and names the image after it, as Java names it after its file", () => { - expect(exportNames('nat_with_mapped_port.fls')).toEqual({ footer: 'nat_with_mapped_port.fls', file: 'nat_with_mapped_port.png' }); - expect(exportNames('netz.v2.fls')).toEqual({ footer: 'netz.v2.fls', file: 'netz.v2.png' }); - expect(exportNames('Netz')).toEqual({ footer: 'Netz', file: 'Netz.png' }); - expect(exportNames('.fls')).toEqual({ footer: '.fls', file: '.fls.png' }); + it("writes the project's name in the footer and names the image and the report after it, as Java names them after its file", () => { + expect(exportNames('nat_with_mapped_port.fls')).toEqual({ footer: 'nat_with_mapped_port.fls', file: 'nat_with_mapped_port.png', report: 'nat_with_mapped_port.pdf' }); + expect(exportNames('netz.v2.fls')).toEqual({ footer: 'netz.v2.fls', file: 'netz.v2.png', report: 'netz.v2.pdf' }); + expect(exportNames('Netz')).toEqual({ footer: 'Netz', file: 'Netz.png', report: 'Netz.pdf' }); + expect(exportNames('.fls')).toEqual({ footer: '.fls', file: '.fls.png', report: '.fls.pdf' }); }); it('writes „Filius“ without a name, as Java does without a file', () => { - expect(exportNames(undefined)).toEqual({ footer: 'Filius', file: 'Filius.png' }); - expect(exportNames(' ')).toEqual({ footer: 'Filius', file: 'Filius.png' }); + expect(exportNames(undefined)).toEqual({ footer: 'Filius', file: 'Filius.png', report: 'Filius.pdf' }); + expect(exportNames(' ')).toEqual({ footer: 'Filius', file: 'Filius.png', report: 'Filius.pdf' }); }); }); diff --git a/packages/editor/test/report.java.json b/packages/editor/test/report.java.json new file mode 100644 index 0000000..8b5a1f9 --- /dev/null +++ b/packages/editor/test/report.java.json @@ -0,0 +1,4881 @@ +{ + "projects": { + "einfaches_rechnernetz_komplett.fls": { + "packetLogCards": [ + { + "mac": "D6:07:2F:55:07:68", + "rows": 40 + }, + { + "mac": "E6:FB:82:01:9A:DE", + "rows": 40 + }, + { + "mac": "3A:15:27:11:6C:BA", + "rows": 40 + }, + { + "mac": "1A:B7:08:95:D9:C1", + "rows": 40 + }, + { + "mac": "22:A7:41:17:3E:42", + "rows": 40 + }, + { + "mac": "06:9C:19:C5:1B:F2", + "rows": 40 + }, + { + "mac": "BE:B8:36:9D:43:C7", + "rows": 40 + }, + { + "mac": "5E:DE:06:AF:CE:26", + "rows": 40 + }, + { + "mac": "92:66:BF:59:14:E4", + "rows": 40 + } + ], + "nodes": [ + { + "name": "Rechner 1", + "type": "Rechner", + "macs": [ + "92:66:BF:59:14:E4" + ] + }, + { + "name": "Rechner 2", + "type": "Rechner", + "macs": [ + "5E:DE:06:AF:CE:26" + ] + }, + { + "name": "Rechner 3", + "type": "Rechner", + "macs": [ + "E6:FB:82:01:9A:DE" + ] + }, + { + "name": "Rechner 4", + "type": "Rechner", + "macs": [ + "06:9C:19:C5:1B:F2" + ] + }, + { + "name": "Server", + "type": "Rechner", + "macs": [ + "D6:07:2F:55:07:68" + ] + }, + { + "name": "Switch 3", + "type": "Switch", + "macs": [] + }, + { + "name": "Notebook 1", + "type": "Notebook", + "macs": [ + "1A:B7:08:95:D9:C1" + ] + }, + { + "name": "Notebook 2", + "type": "Notebook", + "macs": [ + "22:A7:41:17:3E:42" + ] + }, + { + "name": "Notebook 3", + "type": "Notebook", + "macs": [ + "3A:15:27:11:6C:BA" + ] + }, + { + "name": "Notebook 4", + "type": "Notebook", + "macs": [ + "BE:B8:36:9D:43:C7" + ] + }, + { + "name": "Switch 2", + "type": "Switch", + "macs": [] + }, + { + "name": "Switch 1", + "type": "Switch", + "macs": [] + } + ], + "pdf": { + "title": "Filius-Dokumentation: einfaches_rechnernetz_komplett", + "creator": "Filius (www.lernsoftware-filius.de)", + "pages": [ + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "59.95|779.0|Helvetica-Bold|18.0|30,50,120|Filius-Dokumentation: einfaches_rechnernetz_komplett", + "36.0|752.0|Helvetica|8.0|0,0,0|/root/mdg-admin-dashboard/filius/tools/java-oracle/.upstream/beispiele/einfaches_rechnernetz_komplett.fls", + "36.0|731.0|Helvetica-Bold|14.0|64,64,64|1. ", + "51.57|731.0|Helvetica-Bold|14.0|64,64,64|Übersicht" + ], + "images": [ + { + "x": 36.0, + "y": 330.83, + "width": 523.0, + "height": 389.67, + "pixels": [ + 863, + 643 + ] + } + ] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|2. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Komponenten", + "36.0|767.0|Helvetica-Bold|12.0|64,64,64|2.1. ", + "59.35|767.0|Helvetica-Bold|12.0|64,64,64|Rechner 1", + "36.0|752.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|670.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|612.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|597.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|597.0|Helvetica|10.0|0,0,0|Webbrowser", + "36.0|567.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|478.0|Helvetica-Bold|12.0|64,64,64|2.2. ", + "59.35|478.0|Helvetica-Bold|12.0|64,64,64|Rechner 2", + "36.0|463.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|381.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|323.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|308.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|308.0|Helvetica|10.0|0,0,0|-", + "36.0|278.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|189.0|Helvetica-Bold|12.0|64,64,64|2.3. ", + "59.35|189.0|Helvetica-Bold|12.0|64,64,64|Rechner 3", + "36.0|174.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|92.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|740.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|726.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|726.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|712.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|702.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|712.0|Helvetica|10.0|0,0,0|false", + "38.0|658.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|658.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|658.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|644.0|Helvetica|10.0|0,0,0|92:66:BF:59:14:E4", + "177.47|644.0|Helvetica|10.0|0,0,0|192.168.0.11", + "316.93|644.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|555.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|555.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|555.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|555.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|541.0|Helvetica|10.0|0,0,0|192.168.0.11", + "142.6|541.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|527.0|Helvetica|10.0|0,0,0|192.168.0.0", + "142.6|527.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|527.0|Helvetica|10.0|0,0,0|192.168.0.11", + "351.8|527.0|Helvetica|10.0|0,0,0|192.168.0.11", + "38.0|513.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|513.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|451.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|437.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|437.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|423.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|413.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|423.0|Helvetica|10.0|0,0,0|false", + "38.0|369.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|369.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|369.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|355.0|Helvetica|10.0|0,0,0|5E:DE:06:AF:CE:26", + "177.47|355.0|Helvetica|10.0|0,0,0|192.168.0.12", + "316.93|355.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|266.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|266.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|266.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|266.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|252.0|Helvetica|10.0|0,0,0|192.168.0.12", + "142.6|252.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|252.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|252.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|238.0|Helvetica|10.0|0,0,0|192.168.0.0", + "142.6|238.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|238.0|Helvetica|10.0|0,0,0|192.168.0.12", + "351.8|238.0|Helvetica|10.0|0,0,0|192.168.0.12", + "38.0|224.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|224.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|224.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|224.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|162.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|148.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|148.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|134.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|124.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|134.0|Helvetica|10.0|0,0,0|false", + "38.0|80.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|80.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|80.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|66.0|Helvetica|10.0|0,0,0|E6:FB:82:01:9A:DE", + "177.47|66.0|Helvetica|10.0|0,0,0|192.168.0.13", + "316.93|66.0|Helvetica|10.0|0,0,0|255.255.255.0" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|776.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|776.0|Helvetica|10.0|0,0,0|-", + "36.0|746.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|657.0|Helvetica-Bold|12.0|64,64,64|2.4. ", + "59.35|657.0|Helvetica-Bold|12.0|64,64,64|Rechner 4", + "36.0|642.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|560.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|502.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|487.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|487.0|Helvetica|10.0|0,0,0|-", + "36.0|457.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|368.0|Helvetica-Bold|12.0|64,64,64|2.5. ", + "59.35|368.0|Helvetica-Bold|12.0|64,64,64|Server", + "36.0|353.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|271.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|213.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|198.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|198.0|Helvetica|10.0|0,0,0|Webserver, DNS-Server, Text-Editor, Datei-Explorer, Befehlszeile, Bildbetrachter", + "36.0|168.0|Helvetica-Bold|10.0|64,64,64|Konfiguration DNS-Server", + "36.0|96.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|734.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|734.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|734.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|734.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|720.0|Helvetica|10.0|0,0,0|192.168.0.13", + "142.6|720.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|720.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|720.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|706.0|Helvetica|10.0|0,0,0|192.168.0.0", + "142.6|706.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|706.0|Helvetica|10.0|0,0,0|192.168.0.13", + "351.8|706.0|Helvetica|10.0|0,0,0|192.168.0.13", + "38.0|692.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|692.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|692.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|692.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|630.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|616.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|616.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|602.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|592.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|602.0|Helvetica|10.0|0,0,0|false", + "38.0|548.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|548.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|548.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|534.0|Helvetica|10.0|0,0,0|06:9C:19:C5:1B:F2", + "177.47|534.0|Helvetica|10.0|0,0,0|192.168.0.14", + "316.93|534.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|445.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|445.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|445.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|445.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|431.0|Helvetica|10.0|0,0,0|192.168.0.14", + "142.6|431.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|431.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|431.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|417.0|Helvetica|10.0|0,0,0|192.168.0.0", + "142.6|417.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|417.0|Helvetica|10.0|0,0,0|192.168.0.14", + "351.8|417.0|Helvetica|10.0|0,0,0|192.168.0.14", + "38.0|403.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|403.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|403.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|403.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|341.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|327.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|327.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|313.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|303.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|313.0|Helvetica|10.0|0,0,0|false", + "38.0|259.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|259.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|259.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|245.0|Helvetica|10.0|0,0,0|D6:07:2F:55:07:68", + "177.47|245.0|Helvetica|10.0|0,0,0|192.168.0.100", + "316.93|245.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|156.0|Helvetica-Bold|10.0|0,0,0|Domainname", + "188.62|156.0|Helvetica-Bold|10.0|0,0,0|Typ", + "238.83|156.0|Helvetica-Bold|10.0|0,0,0|Daten", + "38.0|142.0|Helvetica|10.0|0,0,0|www.mein-server.de.", + "188.62|142.0|Helvetica|10.0|0,0,0|A", + "238.83|142.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|128.0|Helvetica|10.0|0,0,0|xy.", + "188.62|128.0|Helvetica|10.0|0,0,0|A", + "238.83|128.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|84.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|84.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|84.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|84.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|70.0|Helvetica|10.0|0,0,0|192.168.0.100", + "142.6|70.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|70.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|70.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|56.0|Helvetica|10.0|0,0,0|192.168.0.0", + "142.6|56.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|56.0|Helvetica|10.0|0,0,0|192.168.0.100", + "351.8|56.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|42.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|42.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|42.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|42.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|773.0|Helvetica-Bold|12.0|64,64,64|2.6. ", + "59.35|773.0|Helvetica-Bold|12.0|64,64,64|Notebook 1", + "36.0|758.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|676.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|618.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|603.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|603.0|Helvetica|10.0|0,0,0|-", + "36.0|573.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|484.0|Helvetica-Bold|12.0|64,64,64|2.7. ", + "59.35|484.0|Helvetica-Bold|12.0|64,64,64|Notebook 2", + "36.0|469.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|387.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|329.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|314.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|314.0|Helvetica|10.0|0,0,0|-", + "36.0|284.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|195.0|Helvetica-Bold|12.0|64,64,64|2.8. ", + "59.35|195.0|Helvetica-Bold|12.0|64,64,64|Notebook 3", + "36.0|180.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|98.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|40.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "38.0|746.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|732.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|732.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|718.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|708.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|718.0|Helvetica|10.0|0,0,0|true", + "38.0|664.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|664.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|664.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|650.0|Helvetica|10.0|0,0,0|1A:B7:08:95:D9:C1", + "177.47|650.0|Helvetica|10.0|0,0,0|0.0.0.0", + "316.93|650.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|561.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|561.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|561.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|561.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|547.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|547.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|547.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|547.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|533.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|533.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|533.0|Helvetica|10.0|0,0,0|0.0.0.0", + "351.8|533.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|519.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|519.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|519.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|519.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|457.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|443.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|443.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|429.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|419.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|429.0|Helvetica|10.0|0,0,0|true", + "38.0|375.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|375.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|375.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|361.0|Helvetica|10.0|0,0,0|22:A7:41:17:3E:42", + "177.47|361.0|Helvetica|10.0|0,0,0|0.0.0.0", + "316.93|361.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|272.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|272.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|272.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|272.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|258.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|258.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|258.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|258.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|244.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|244.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|244.0|Helvetica|10.0|0,0,0|0.0.0.0", + "351.8|244.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|230.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|230.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|230.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|230.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|168.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|154.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|154.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|140.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|130.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|140.0|Helvetica|10.0|0,0,0|true", + "38.0|86.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|86.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|86.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|72.0|Helvetica|10.0|0,0,0|3A:15:27:11:6C:BA", + "177.47|72.0|Helvetica|10.0|0,0,0|0.0.0.0", + "316.93|72.0|Helvetica|10.0|0,0,0|0.0.0.0" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|791.0|Helvetica|10.0|0,0,0|-", + "36.0|761.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|672.0|Helvetica-Bold|12.0|64,64,64|2.9. ", + "59.35|672.0|Helvetica-Bold|12.0|64,64,64|Notebook 4", + "36.0|657.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|575.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|517.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|502.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|502.0|Helvetica|10.0|0,0,0|-", + "36.0|472.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|749.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|749.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|749.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|749.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|735.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|735.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|735.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|735.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|721.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|721.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|721.0|Helvetica|10.0|0,0,0|0.0.0.0", + "351.8|721.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|707.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|707.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|707.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|707.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|645.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|631.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|631.0|Helvetica|10.0|0,0,0|192.168.0.100", + "38.0|617.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|607.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|617.0|Helvetica|10.0|0,0,0|true", + "38.0|563.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|563.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|563.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|549.0|Helvetica|10.0|0,0,0|BE:B8:36:9D:43:C7", + "177.47|549.0|Helvetica|10.0|0,0,0|0.0.0.0", + "316.93|549.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|460.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|460.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|460.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|460.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|446.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|446.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|446.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|446.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|432.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|432.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|432.0|Helvetica|10.0|0,0,0|0.0.0.0", + "351.8|432.0|Helvetica|10.0|0,0,0|0.0.0.0", + "38.0|418.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|418.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|418.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|418.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|3. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Datenaustausch", + "36.0|767.0|Helvetica-Bold|12.0|64,64,64|3.1. ", + "59.35|767.0|Helvetica-Bold|12.0|64,64,64|Server - 192.168.0.100", + "44.5|757.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|757.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|757.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|757.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|757.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|757.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|757.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|745.0|Helvetica|8.0|0,0,0|1", + "64.5|745.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|745.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|745.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|745.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|745.0|Helvetica|8.0|0,0,0|0x800", + "44.5|733.0|Helvetica|8.0|0,0,0|1", + "64.5|733.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|733.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|733.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|733.0|Helvetica|8.0|0,0,0|IP", + "324.5|733.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|733.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|721.0|Helvetica|8.0|0,0,0|1", + "64.5|721.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|721.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|721.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|721.0|Helvetica|8.0|0,0,0|UDP", + "324.5|721.0|Helvetica|8.0|0,0,0|Transport", + "44.5|709.0|Helvetica|8.0|0,0,0|1", + "64.5|709.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|709.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|709.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|709.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|709.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|709.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|701.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|693.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|681.0|Helvetica|8.0|0,0,0|2", + "64.5|681.0|Helvetica|8.0|0,0,0|12:16:52.104", + "124.5|681.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|681.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|681.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|681.0|Helvetica|8.0|0,0,0|0x800", + "44.5|669.0|Helvetica|8.0|0,0,0|2", + "64.5|669.0|Helvetica|8.0|0,0,0|12:16:52.104", + "124.5|669.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|669.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|669.0|Helvetica|8.0|0,0,0|IP", + "324.5|669.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|669.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|657.0|Helvetica|8.0|0,0,0|2", + "64.5|657.0|Helvetica|8.0|0,0,0|12:16:52.104", + "124.5|657.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|657.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|657.0|Helvetica|8.0|0,0,0|UDP", + "324.5|657.0|Helvetica|8.0|0,0,0|Transport", + "44.5|645.0|Helvetica|8.0|0,0,0|2", + "64.5|645.0|Helvetica|8.0|0,0,0|12:16:52.104", + "124.5|645.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|645.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|645.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|645.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|645.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|637.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|629.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|621.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|613.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|605.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|597.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|585.0|Helvetica|8.0|0,0,0|3", + "64.5|585.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|585.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|585.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|585.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|585.0|Helvetica|8.0|0,0,0|0x800", + "44.5|573.0|Helvetica|8.0|0,0,0|3", + "64.5|573.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|573.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|573.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|573.0|Helvetica|8.0|0,0,0|IP", + "324.5|573.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|573.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|561.0|Helvetica|8.0|0,0,0|3", + "64.5|561.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|561.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|561.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|561.0|Helvetica|8.0|0,0,0|UDP", + "324.5|561.0|Helvetica|8.0|0,0,0|Transport", + "44.5|549.0|Helvetica|8.0|0,0,0|3", + "64.5|549.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|549.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|549.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|549.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|549.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|549.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|541.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|533.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|521.0|Helvetica|8.0|0,0,0|4", + "64.5|521.0|Helvetica|8.0|0,0,0|12:16:52.159", + "124.5|521.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|521.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|521.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|521.0|Helvetica|8.0|0,0,0|0x800", + "44.5|509.0|Helvetica|8.0|0,0,0|4", + "64.5|509.0|Helvetica|8.0|0,0,0|12:16:52.159", + "124.5|509.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|509.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|509.0|Helvetica|8.0|0,0,0|IP", + "324.5|509.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|509.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|497.0|Helvetica|8.0|0,0,0|4", + "64.5|497.0|Helvetica|8.0|0,0,0|12:16:52.159", + "124.5|497.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|497.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|497.0|Helvetica|8.0|0,0,0|UDP", + "324.5|497.0|Helvetica|8.0|0,0,0|Transport", + "44.5|485.0|Helvetica|8.0|0,0,0|4", + "64.5|485.0|Helvetica|8.0|0,0,0|12:16:52.159", + "124.5|485.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|485.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|485.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|485.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|485.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|477.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|469.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|461.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|453.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|445.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|437.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|425.0|Helvetica|8.0|0,0,0|5", + "64.5|425.0|Helvetica|8.0|0,0,0|12:16:52.212", + "124.5|425.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|425.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|425.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|425.0|Helvetica|8.0|0,0,0|0x800", + "44.5|413.0|Helvetica|8.0|0,0,0|5", + "64.5|413.0|Helvetica|8.0|0,0,0|12:16:52.212", + "124.5|413.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|413.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|413.0|Helvetica|8.0|0,0,0|IP", + "324.5|413.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|413.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|401.0|Helvetica|8.0|0,0,0|5", + "64.5|401.0|Helvetica|8.0|0,0,0|12:16:52.212", + "124.5|401.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|401.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|401.0|Helvetica|8.0|0,0,0|UDP", + "324.5|401.0|Helvetica|8.0|0,0,0|Transport", + "44.5|389.0|Helvetica|8.0|0,0,0|5", + "64.5|389.0|Helvetica|8.0|0,0,0|12:16:52.212", + "124.5|389.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|389.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|389.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|389.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|389.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|381.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|373.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|361.0|Helvetica|8.0|0,0,0|6", + "64.5|361.0|Helvetica|8.0|0,0,0|12:16:52.215", + "124.5|361.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|361.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|361.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|361.0|Helvetica|8.0|0,0,0|0x800", + "44.5|349.0|Helvetica|8.0|0,0,0|6", + "64.5|349.0|Helvetica|8.0|0,0,0|12:16:52.215", + "124.5|349.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|349.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|349.0|Helvetica|8.0|0,0,0|IP", + "324.5|349.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|349.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|337.0|Helvetica|8.0|0,0,0|6", + "64.5|337.0|Helvetica|8.0|0,0,0|12:16:52.215", + "124.5|337.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|337.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|337.0|Helvetica|8.0|0,0,0|UDP", + "324.5|337.0|Helvetica|8.0|0,0,0|Transport", + "44.5|325.0|Helvetica|8.0|0,0,0|6", + "64.5|325.0|Helvetica|8.0|0,0,0|12:16:52.215", + "124.5|325.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|325.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|325.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|325.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|325.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|317.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|309.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|301.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|293.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|285.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|277.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|265.0|Helvetica|8.0|0,0,0|7", + "64.5|265.0|Helvetica|8.0|0,0,0|12:16:52.267", + "124.5|265.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|265.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|265.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|265.0|Helvetica|8.0|0,0,0|0x800", + "44.5|253.0|Helvetica|8.0|0,0,0|7", + "64.5|253.0|Helvetica|8.0|0,0,0|12:16:52.267", + "124.5|253.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|253.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|253.0|Helvetica|8.0|0,0,0|IP", + "324.5|253.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|253.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|241.0|Helvetica|8.0|0,0,0|7", + "64.5|241.0|Helvetica|8.0|0,0,0|12:16:52.267", + "124.5|241.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|241.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|241.0|Helvetica|8.0|0,0,0|UDP", + "324.5|241.0|Helvetica|8.0|0,0,0|Transport", + "44.5|229.0|Helvetica|8.0|0,0,0|7", + "64.5|229.0|Helvetica|8.0|0,0,0|12:16:52.267", + "124.5|229.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|229.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|229.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|229.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|229.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|221.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|213.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|201.0|Helvetica|8.0|0,0,0|8", + "64.5|201.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|201.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|201.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|201.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|201.0|Helvetica|8.0|0,0,0|0x800", + "44.5|189.0|Helvetica|8.0|0,0,0|8", + "64.5|189.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|189.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|189.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|189.0|Helvetica|8.0|0,0,0|IP", + "324.5|189.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|189.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|177.0|Helvetica|8.0|0,0,0|8", + "64.5|177.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|177.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|177.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|177.0|Helvetica|8.0|0,0,0|UDP", + "324.5|177.0|Helvetica|8.0|0,0,0|Transport", + "44.5|165.0|Helvetica|8.0|0,0,0|8", + "64.5|165.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|165.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|165.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|165.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|165.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|165.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|157.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|149.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|141.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|133.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|125.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|117.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|105.0|Helvetica|8.0|0,0,0|9", + "64.5|105.0|Helvetica|8.0|0,0,0|12:16:52.544", + "124.5|105.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|105.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|105.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|105.0|Helvetica|8.0|0,0,0|0x806", + "44.5|93.0|Helvetica|8.0|0,0,0|9", + "64.5|93.0|Helvetica|8.0|0,0,0|12:16:52.544", + "124.5|93.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|93.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|93.0|Helvetica|8.0|0,0,0|ARP", + "324.5|93.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|93.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|85.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|77.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|69.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|57.0|Helvetica|8.0|0,0,0|10", + "64.5|57.0|Helvetica|8.0|0,0,0|12:16:52.605", + "124.5|57.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|57.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|57.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|57.0|Helvetica|8.0|0,0,0|0x806" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|638.0|Helvetica-Bold|12.0|64,64,64|3.2. ", + "59.35|638.0|Helvetica-Bold|12.0|64,64,64|Rechner 3 - 192.168.0.13", + "44.5|796.0|Helvetica|8.0|0,0,0|10", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.605", + "124.5|796.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|796.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|796.0|Helvetica|8.0|0,0,0|ARP", + "324.5|796.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|796.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|788.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|780.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|772.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|760.0|Helvetica|8.0|0,0,0|11", + "64.5|760.0|Helvetica|8.0|0,0,0|12:16:52.713", + "124.5|760.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|760.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|760.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|760.0|Helvetica|8.0|0,0,0|0x806", + "44.5|748.0|Helvetica|8.0|0,0,0|11", + "64.5|748.0|Helvetica|8.0|0,0,0|12:16:52.713", + "124.5|748.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|748.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|748.0|Helvetica|8.0|0,0,0|ARP", + "324.5|748.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|748.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|740.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|732.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|724.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|712.0|Helvetica|8.0|0,0,0|12", + "64.5|712.0|Helvetica|8.0|0,0,0|12:16:52.825", + "124.5|712.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|712.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|712.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|712.0|Helvetica|8.0|0,0,0|0x806", + "44.5|700.0|Helvetica|8.0|0,0,0|12", + "64.5|700.0|Helvetica|8.0|0,0,0|12:16:52.825", + "124.5|700.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|700.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|700.0|Helvetica|8.0|0,0,0|ARP", + "324.5|700.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|700.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|692.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|684.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|676.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|628.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|628.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|628.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|628.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|628.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|628.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|628.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|616.0|Helvetica|8.0|0,0,0|1", + "64.5|616.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|616.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|616.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|616.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|616.0|Helvetica|8.0|0,0,0|0x800", + "44.5|604.0|Helvetica|8.0|0,0,0|1", + "64.5|604.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|604.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|604.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|604.0|Helvetica|8.0|0,0,0|IP", + "324.5|604.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|604.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|592.0|Helvetica|8.0|0,0,0|1", + "64.5|592.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|592.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|592.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|592.0|Helvetica|8.0|0,0,0|UDP", + "324.5|592.0|Helvetica|8.0|0,0,0|Transport", + "44.5|580.0|Helvetica|8.0|0,0,0|1", + "64.5|580.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|580.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|580.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|580.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|580.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|580.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|572.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|564.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|552.0|Helvetica|8.0|0,0,0|2", + "64.5|552.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|552.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|552.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|552.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|552.0|Helvetica|8.0|0,0,0|0x800", + "44.5|540.0|Helvetica|8.0|0,0,0|2", + "64.5|540.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|540.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|540.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|540.0|Helvetica|8.0|0,0,0|IP", + "324.5|540.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|540.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|528.0|Helvetica|8.0|0,0,0|2", + "64.5|528.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|528.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|528.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|528.0|Helvetica|8.0|0,0,0|UDP", + "324.5|528.0|Helvetica|8.0|0,0,0|Transport", + "44.5|516.0|Helvetica|8.0|0,0,0|2", + "64.5|516.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|516.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|516.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|516.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|516.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|516.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|508.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|500.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|488.0|Helvetica|8.0|0,0,0|3", + "64.5|488.0|Helvetica|8.0|0,0,0|12:16:52.269", + "124.5|488.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|488.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|488.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|488.0|Helvetica|8.0|0,0,0|0x800", + "44.5|476.0|Helvetica|8.0|0,0,0|3", + "64.5|476.0|Helvetica|8.0|0,0,0|12:16:52.269", + "124.5|476.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|476.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|476.0|Helvetica|8.0|0,0,0|IP", + "324.5|476.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|476.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|464.0|Helvetica|8.0|0,0,0|3", + "64.5|464.0|Helvetica|8.0|0,0,0|12:16:52.269", + "124.5|464.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|464.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|464.0|Helvetica|8.0|0,0,0|UDP", + "324.5|464.0|Helvetica|8.0|0,0,0|Transport", + "44.5|452.0|Helvetica|8.0|0,0,0|3", + "64.5|452.0|Helvetica|8.0|0,0,0|12:16:52.269", + "124.5|452.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|452.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|452.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|452.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|452.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|444.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|436.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|424.0|Helvetica|8.0|0,0,0|4", + "64.5|424.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|424.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|424.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|424.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|424.0|Helvetica|8.0|0,0,0|0x800", + "44.5|412.0|Helvetica|8.0|0,0,0|4", + "64.5|412.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|412.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|412.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|412.0|Helvetica|8.0|0,0,0|IP", + "324.5|412.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|412.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|400.0|Helvetica|8.0|0,0,0|4", + "64.5|400.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|400.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|400.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|400.0|Helvetica|8.0|0,0,0|UDP", + "324.5|400.0|Helvetica|8.0|0,0,0|Transport", + "44.5|388.0|Helvetica|8.0|0,0,0|4", + "64.5|388.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|388.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|388.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|388.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|388.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|388.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|380.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|372.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|360.0|Helvetica|8.0|0,0,0|5", + "64.5|360.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|360.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|360.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|360.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|360.0|Helvetica|8.0|0,0,0|0x800", + "44.5|348.0|Helvetica|8.0|0,0,0|5", + "64.5|348.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|348.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|348.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|348.0|Helvetica|8.0|0,0,0|IP", + "324.5|348.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|348.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|336.0|Helvetica|8.0|0,0,0|5", + "64.5|336.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|336.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|336.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|336.0|Helvetica|8.0|0,0,0|UDP", + "324.5|336.0|Helvetica|8.0|0,0,0|Transport", + "44.5|324.0|Helvetica|8.0|0,0,0|5", + "64.5|324.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|324.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|324.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|324.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|324.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|324.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|316.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|308.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|300.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|292.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|284.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|276.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|264.0|Helvetica|8.0|0,0,0|6", + "64.5|264.0|Helvetica|8.0|0,0,0|12:16:52.439", + "124.5|264.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|264.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|264.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|264.0|Helvetica|8.0|0,0,0|0x800", + "44.5|252.0|Helvetica|8.0|0,0,0|6", + "64.5|252.0|Helvetica|8.0|0,0,0|12:16:52.439", + "124.5|252.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|252.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|252.0|Helvetica|8.0|0,0,0|IP", + "324.5|252.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|252.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|240.0|Helvetica|8.0|0,0,0|6", + "64.5|240.0|Helvetica|8.0|0,0,0|12:16:52.439", + "124.5|240.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|240.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|240.0|Helvetica|8.0|0,0,0|UDP", + "324.5|240.0|Helvetica|8.0|0,0,0|Transport", + "44.5|228.0|Helvetica|8.0|0,0,0|6", + "64.5|228.0|Helvetica|8.0|0,0,0|12:16:52.439", + "124.5|228.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|228.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|228.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|228.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|228.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|220.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|212.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|204.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|196.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|188.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|180.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|168.0|Helvetica|8.0|0,0,0|7", + "64.5|168.0|Helvetica|8.0|0,0,0|12:16:52.494", + "124.5|168.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|168.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|168.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|168.0|Helvetica|8.0|0,0,0|0x800", + "44.5|156.0|Helvetica|8.0|0,0,0|7", + "64.5|156.0|Helvetica|8.0|0,0,0|12:16:52.494", + "124.5|156.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|156.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|156.0|Helvetica|8.0|0,0,0|IP", + "324.5|156.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|156.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|144.0|Helvetica|8.0|0,0,0|7", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.494", + "124.5|144.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|144.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|144.0|Helvetica|8.0|0,0,0|UDP", + "324.5|144.0|Helvetica|8.0|0,0,0|Transport", + "44.5|132.0|Helvetica|8.0|0,0,0|7", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.494", + "124.5|132.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|132.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|132.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|132.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|132.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|124.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|116.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|108.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|100.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|92.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|84.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|72.0|Helvetica|8.0|0,0,0|8", + "64.5|72.0|Helvetica|8.0|0,0,0|12:16:52.550", + "124.5|72.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|72.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|72.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|72.0|Helvetica|8.0|0,0,0|0x800", + "44.5|60.0|Helvetica|8.0|0,0,0|8", + "64.5|60.0|Helvetica|8.0|0,0,0|12:16:52.550", + "124.5|60.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|60.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|60.0|Helvetica|8.0|0,0,0|IP", + "324.5|60.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|60.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|48.0|Helvetica|8.0|0,0,0|8", + "64.5|48.0|Helvetica|8.0|0,0,0|12:16:52.550", + "124.5|48.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|48.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|48.0|Helvetica|8.0|0,0,0|UDP", + "324.5|48.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|518.0|Helvetica-Bold|12.0|64,64,64|3.3. ", + "59.35|518.0|Helvetica-Bold|12.0|64,64,64|Notebook 3 - 0.0.0.0", + "44.5|796.0|Helvetica|8.0|0,0,0|8", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.550", + "124.5|796.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|772.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|764.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|756.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|748.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|736.0|Helvetica|8.0|0,0,0|9", + "64.5|736.0|Helvetica|8.0|0,0,0|12:16:52.606", + "124.5|736.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|736.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|736.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|736.0|Helvetica|8.0|0,0,0|0x806", + "44.5|724.0|Helvetica|8.0|0,0,0|9", + "64.5|724.0|Helvetica|8.0|0,0,0|12:16:52.606", + "124.5|724.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|724.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|724.0|Helvetica|8.0|0,0,0|ARP", + "324.5|724.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|724.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|716.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|708.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|700.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|688.0|Helvetica|8.0|0,0,0|10", + "64.5|688.0|Helvetica|8.0|0,0,0|12:16:52.661", + "124.5|688.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|688.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|688.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|688.0|Helvetica|8.0|0,0,0|0x806", + "44.5|676.0|Helvetica|8.0|0,0,0|10", + "64.5|676.0|Helvetica|8.0|0,0,0|12:16:52.661", + "124.5|676.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|676.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|676.0|Helvetica|8.0|0,0,0|ARP", + "324.5|676.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|676.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|668.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|660.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|652.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|640.0|Helvetica|8.0|0,0,0|11", + "64.5|640.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|640.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|640.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|640.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|640.0|Helvetica|8.0|0,0,0|0x806", + "44.5|628.0|Helvetica|8.0|0,0,0|11", + "64.5|628.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|628.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|628.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|628.0|Helvetica|8.0|0,0,0|ARP", + "324.5|628.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|628.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|620.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|612.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|604.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|592.0|Helvetica|8.0|0,0,0|12", + "64.5|592.0|Helvetica|8.0|0,0,0|12:16:52.881", + "124.5|592.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|592.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|592.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|592.0|Helvetica|8.0|0,0,0|0x806", + "44.5|580.0|Helvetica|8.0|0,0,0|12", + "64.5|580.0|Helvetica|8.0|0,0,0|12:16:52.881", + "124.5|580.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|580.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|580.0|Helvetica|8.0|0,0,0|ARP", + "324.5|580.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|580.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|572.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|564.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|556.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|508.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|508.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|508.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|508.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|508.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|508.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|508.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|496.0|Helvetica|8.0|0,0,0|1", + "64.5|496.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|496.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|496.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|496.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|496.0|Helvetica|8.0|0,0,0|0x800", + "44.5|484.0|Helvetica|8.0|0,0,0|1", + "64.5|484.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|484.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|484.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|484.0|Helvetica|8.0|0,0,0|IP", + "324.5|484.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|484.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|472.0|Helvetica|8.0|0,0,0|1", + "64.5|472.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|472.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|472.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|472.0|Helvetica|8.0|0,0,0|UDP", + "324.5|472.0|Helvetica|8.0|0,0,0|Transport", + "44.5|460.0|Helvetica|8.0|0,0,0|1", + "64.5|460.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|460.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|460.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|460.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|460.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|460.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|452.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|444.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|432.0|Helvetica|8.0|0,0,0|2", + "64.5|432.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|432.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|432.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|432.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|432.0|Helvetica|8.0|0,0,0|0x800", + "44.5|420.0|Helvetica|8.0|0,0,0|2", + "64.5|420.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|420.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|420.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|420.0|Helvetica|8.0|0,0,0|IP", + "324.5|420.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|420.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|408.0|Helvetica|8.0|0,0,0|2", + "64.5|408.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|408.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|408.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|408.0|Helvetica|8.0|0,0,0|UDP", + "324.5|408.0|Helvetica|8.0|0,0,0|Transport", + "44.5|396.0|Helvetica|8.0|0,0,0|2", + "64.5|396.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|396.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|396.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|396.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|396.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|396.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|388.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|380.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|368.0|Helvetica|8.0|0,0,0|3", + "64.5|368.0|Helvetica|8.0|0,0,0|12:16:52.098", + "124.5|368.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|368.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|368.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|368.0|Helvetica|8.0|0,0,0|0x800", + "44.5|356.0|Helvetica|8.0|0,0,0|3", + "64.5|356.0|Helvetica|8.0|0,0,0|12:16:52.098", + "124.5|356.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|356.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|356.0|Helvetica|8.0|0,0,0|IP", + "324.5|356.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|356.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|344.0|Helvetica|8.0|0,0,0|3", + "64.5|344.0|Helvetica|8.0|0,0,0|12:16:52.098", + "124.5|344.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|344.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|344.0|Helvetica|8.0|0,0,0|UDP", + "324.5|344.0|Helvetica|8.0|0,0,0|Transport", + "44.5|332.0|Helvetica|8.0|0,0,0|3", + "64.5|332.0|Helvetica|8.0|0,0,0|12:16:52.098", + "124.5|332.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|332.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|332.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|332.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|332.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|324.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|316.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|304.0|Helvetica|8.0|0,0,0|4", + "64.5|304.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|304.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|304.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|304.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|304.0|Helvetica|8.0|0,0,0|0x800", + "44.5|292.0|Helvetica|8.0|0,0,0|4", + "64.5|292.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|292.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|292.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|292.0|Helvetica|8.0|0,0,0|IP", + "324.5|292.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|292.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|280.0|Helvetica|8.0|0,0,0|4", + "64.5|280.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|280.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|280.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|280.0|Helvetica|8.0|0,0,0|UDP", + "324.5|280.0|Helvetica|8.0|0,0,0|Transport", + "44.5|268.0|Helvetica|8.0|0,0,0|4", + "64.5|268.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|268.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|268.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|268.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|268.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|268.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|260.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|252.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|240.0|Helvetica|8.0|0,0,0|5", + "64.5|240.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|240.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|240.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|240.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|240.0|Helvetica|8.0|0,0,0|0x800", + "44.5|228.0|Helvetica|8.0|0,0,0|5", + "64.5|228.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|228.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|228.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|228.0|Helvetica|8.0|0,0,0|IP", + "324.5|228.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|228.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|216.0|Helvetica|8.0|0,0,0|5", + "64.5|216.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|216.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|216.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|216.0|Helvetica|8.0|0,0,0|UDP", + "324.5|216.0|Helvetica|8.0|0,0,0|Transport", + "44.5|204.0|Helvetica|8.0|0,0,0|5", + "64.5|204.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|204.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|204.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|204.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|204.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|204.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|196.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|188.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|180.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|172.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|164.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|156.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|144.0|Helvetica|8.0|0,0,0|6", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|144.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|144.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|144.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|144.0|Helvetica|8.0|0,0,0|0x800", + "44.5|132.0|Helvetica|8.0|0,0,0|6", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|132.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|132.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|132.0|Helvetica|8.0|0,0,0|IP", + "324.5|132.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|132.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|120.0|Helvetica|8.0|0,0,0|6", + "64.5|120.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|120.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|120.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|120.0|Helvetica|8.0|0,0,0|UDP", + "324.5|120.0|Helvetica|8.0|0,0,0|Transport", + "44.5|108.0|Helvetica|8.0|0,0,0|6", + "64.5|108.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|108.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|108.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|108.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|108.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|108.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|100.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|92.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|84.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|76.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|68.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|60.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|48.0|Helvetica|8.0|0,0,0|7", + "64.5|48.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|48.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|48.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|48.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|48.0|Helvetica|8.0|0,0,0|0x806" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|398.0|Helvetica-Bold|12.0|64,64,64|3.4. ", + "59.35|398.0|Helvetica-Bold|12.0|64,64,64|Notebook 1 - 0.0.0.0", + "44.5|796.0|Helvetica|8.0|0,0,0|7", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|796.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|796.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|796.0|Helvetica|8.0|0,0,0|ARP", + "324.5|796.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|796.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|788.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|780.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|772.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|760.0|Helvetica|8.0|0,0,0|8", + "64.5|760.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|760.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|760.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|760.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|760.0|Helvetica|8.0|0,0,0|0x800", + "44.5|748.0|Helvetica|8.0|0,0,0|8", + "64.5|748.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|748.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|748.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|748.0|Helvetica|8.0|0,0,0|IP", + "324.5|748.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|748.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|736.0|Helvetica|8.0|0,0,0|8", + "64.5|736.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|736.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|736.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|736.0|Helvetica|8.0|0,0,0|UDP", + "324.5|736.0|Helvetica|8.0|0,0,0|Transport", + "44.5|724.0|Helvetica|8.0|0,0,0|8", + "64.5|724.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|724.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|724.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|724.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|724.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|724.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|716.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|708.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|700.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|692.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|684.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|676.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|664.0|Helvetica|8.0|0,0,0|9", + "64.5|664.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|664.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|664.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|664.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|664.0|Helvetica|8.0|0,0,0|0x806", + "44.5|652.0|Helvetica|8.0|0,0,0|9", + "64.5|652.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|652.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|652.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|652.0|Helvetica|8.0|0,0,0|ARP", + "324.5|652.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|652.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|644.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|636.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|628.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|616.0|Helvetica|8.0|0,0,0|10", + "64.5|616.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|616.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|616.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|616.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|616.0|Helvetica|8.0|0,0,0|0x800", + "44.5|604.0|Helvetica|8.0|0,0,0|10", + "64.5|604.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|604.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|604.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|604.0|Helvetica|8.0|0,0,0|IP", + "324.5|604.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|604.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|592.0|Helvetica|8.0|0,0,0|10", + "64.5|592.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|592.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|592.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|592.0|Helvetica|8.0|0,0,0|UDP", + "324.5|592.0|Helvetica|8.0|0,0,0|Transport", + "44.5|580.0|Helvetica|8.0|0,0,0|10", + "64.5|580.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|580.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|580.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|580.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|580.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|580.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|572.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|564.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|556.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|548.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|540.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|532.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|520.0|Helvetica|8.0|0,0,0|11", + "64.5|520.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|520.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|520.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|520.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|520.0|Helvetica|8.0|0,0,0|0x806", + "44.5|508.0|Helvetica|8.0|0,0,0|11", + "64.5|508.0|Helvetica|8.0|0,0,0|12:16:52.658", + "124.5|508.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|508.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|508.0|Helvetica|8.0|0,0,0|ARP", + "324.5|508.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|508.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|500.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|492.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|484.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|472.0|Helvetica|8.0|0,0,0|12", + "64.5|472.0|Helvetica|8.0|0,0,0|12:16:52.714", + "124.5|472.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|472.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|472.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|472.0|Helvetica|8.0|0,0,0|0x806", + "44.5|460.0|Helvetica|8.0|0,0,0|12", + "64.5|460.0|Helvetica|8.0|0,0,0|12:16:52.714", + "124.5|460.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|460.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|460.0|Helvetica|8.0|0,0,0|ARP", + "324.5|460.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|460.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|452.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|444.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|436.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|388.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|388.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|388.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|388.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|388.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|388.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|388.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|376.0|Helvetica|8.0|0,0,0|1", + "64.5|376.0|Helvetica|8.0|0,0,0|12:16:51.905", + "124.5|376.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|376.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|376.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|376.0|Helvetica|8.0|0,0,0|0x800", + "44.5|364.0|Helvetica|8.0|0,0,0|1", + "64.5|364.0|Helvetica|8.0|0,0,0|12:16:51.905", + "124.5|364.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|364.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|364.0|Helvetica|8.0|0,0,0|IP", + "324.5|364.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|364.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|352.0|Helvetica|8.0|0,0,0|1", + "64.5|352.0|Helvetica|8.0|0,0,0|12:16:51.905", + "124.5|352.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|352.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|352.0|Helvetica|8.0|0,0,0|UDP", + "324.5|352.0|Helvetica|8.0|0,0,0|Transport", + "44.5|340.0|Helvetica|8.0|0,0,0|1", + "64.5|340.0|Helvetica|8.0|0,0,0|12:16:51.905", + "124.5|340.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|340.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|340.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|340.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|340.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|332.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|324.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|312.0|Helvetica|8.0|0,0,0|2", + "64.5|312.0|Helvetica|8.0|0,0,0|12:16:52.042", + "124.5|312.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|312.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|312.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|312.0|Helvetica|8.0|0,0,0|0x800", + "44.5|300.0|Helvetica|8.0|0,0,0|2", + "64.5|300.0|Helvetica|8.0|0,0,0|12:16:52.042", + "124.5|300.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|300.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|300.0|Helvetica|8.0|0,0,0|IP", + "324.5|300.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|300.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|288.0|Helvetica|8.0|0,0,0|2", + "64.5|288.0|Helvetica|8.0|0,0,0|12:16:52.042", + "124.5|288.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|288.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|288.0|Helvetica|8.0|0,0,0|UDP", + "324.5|288.0|Helvetica|8.0|0,0,0|Transport", + "44.5|276.0|Helvetica|8.0|0,0,0|2", + "64.5|276.0|Helvetica|8.0|0,0,0|12:16:52.042", + "124.5|276.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|276.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|276.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|276.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|276.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|268.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|260.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|248.0|Helvetica|8.0|0,0,0|3", + "64.5|248.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|248.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|248.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|248.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|248.0|Helvetica|8.0|0,0,0|0x800", + "44.5|236.0|Helvetica|8.0|0,0,0|3", + "64.5|236.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|236.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|236.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|236.0|Helvetica|8.0|0,0,0|IP", + "324.5|236.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|236.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|224.0|Helvetica|8.0|0,0,0|3", + "64.5|224.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|224.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|224.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|224.0|Helvetica|8.0|0,0,0|UDP", + "324.5|224.0|Helvetica|8.0|0,0,0|Transport", + "44.5|212.0|Helvetica|8.0|0,0,0|3", + "64.5|212.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|212.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|212.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|212.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|212.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|212.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|204.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|196.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|184.0|Helvetica|8.0|0,0,0|4", + "64.5|184.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|184.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|184.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|184.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|184.0|Helvetica|8.0|0,0,0|0x800", + "44.5|172.0|Helvetica|8.0|0,0,0|4", + "64.5|172.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|172.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|172.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|172.0|Helvetica|8.0|0,0,0|IP", + "324.5|172.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|172.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|160.0|Helvetica|8.0|0,0,0|4", + "64.5|160.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|160.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|160.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|160.0|Helvetica|8.0|0,0,0|UDP", + "324.5|160.0|Helvetica|8.0|0,0,0|Transport", + "44.5|148.0|Helvetica|8.0|0,0,0|4", + "64.5|148.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|148.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|148.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|148.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|148.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|148.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|140.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|132.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|120.0|Helvetica|8.0|0,0,0|5", + "64.5|120.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|120.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|120.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|120.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|120.0|Helvetica|8.0|0,0,0|0x800", + "44.5|108.0|Helvetica|8.0|0,0,0|5", + "64.5|108.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|108.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|108.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|108.0|Helvetica|8.0|0,0,0|IP", + "324.5|108.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|108.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|96.0|Helvetica|8.0|0,0,0|5", + "64.5|96.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|96.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|96.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|96.0|Helvetica|8.0|0,0,0|UDP", + "324.5|96.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|230.0|Helvetica-Bold|12.0|64,64,64|3.5. ", + "59.35|230.0|Helvetica-Bold|12.0|64,64,64|Notebook 2 - 0.0.0.0", + "44.5|796.0|Helvetica|8.0|0,0,0|5", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.325", + "124.5|796.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|772.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|764.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|756.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|748.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|736.0|Helvetica|8.0|0,0,0|6", + "64.5|736.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|736.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|736.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|736.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|736.0|Helvetica|8.0|0,0,0|0x800", + "44.5|724.0|Helvetica|8.0|0,0,0|6", + "64.5|724.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|724.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|724.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|724.0|Helvetica|8.0|0,0,0|IP", + "324.5|724.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|724.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|712.0|Helvetica|8.0|0,0,0|6", + "64.5|712.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|712.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|712.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|712.0|Helvetica|8.0|0,0,0|UDP", + "324.5|712.0|Helvetica|8.0|0,0,0|Transport", + "44.5|700.0|Helvetica|8.0|0,0,0|6", + "64.5|700.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|700.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|700.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|700.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|700.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|700.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|692.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|684.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|676.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|668.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|660.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|652.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|640.0|Helvetica|8.0|0,0,0|7", + "64.5|640.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|640.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|640.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|640.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|640.0|Helvetica|8.0|0,0,0|0x806", + "44.5|628.0|Helvetica|8.0|0,0,0|7", + "64.5|628.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|628.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|628.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|628.0|Helvetica|8.0|0,0,0|ARP", + "324.5|628.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|628.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|620.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|612.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|604.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|592.0|Helvetica|8.0|0,0,0|8", + "64.5|592.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|592.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|592.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|592.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|592.0|Helvetica|8.0|0,0,0|0x800", + "44.5|580.0|Helvetica|8.0|0,0,0|8", + "64.5|580.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|580.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|580.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|580.0|Helvetica|8.0|0,0,0|IP", + "324.5|580.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|580.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|568.0|Helvetica|8.0|0,0,0|8", + "64.5|568.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|568.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|568.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|568.0|Helvetica|8.0|0,0,0|UDP", + "324.5|568.0|Helvetica|8.0|0,0,0|Transport", + "44.5|556.0|Helvetica|8.0|0,0,0|8", + "64.5|556.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|556.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|556.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|556.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|556.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|556.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|548.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|540.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|532.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|524.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|516.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|508.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|496.0|Helvetica|8.0|0,0,0|9", + "64.5|496.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|496.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|496.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|496.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|496.0|Helvetica|8.0|0,0,0|0x806", + "44.5|484.0|Helvetica|8.0|0,0,0|9", + "64.5|484.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|484.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|484.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|484.0|Helvetica|8.0|0,0,0|ARP", + "324.5|484.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|484.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|476.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|468.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|460.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|448.0|Helvetica|8.0|0,0,0|10", + "64.5|448.0|Helvetica|8.0|0,0,0|12:16:52.601", + "124.5|448.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|448.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|448.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|448.0|Helvetica|8.0|0,0,0|0x800", + "44.5|436.0|Helvetica|8.0|0,0,0|10", + "64.5|436.0|Helvetica|8.0|0,0,0|12:16:52.601", + "124.5|436.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|436.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|436.0|Helvetica|8.0|0,0,0|IP", + "324.5|436.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|436.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|424.0|Helvetica|8.0|0,0,0|10", + "64.5|424.0|Helvetica|8.0|0,0,0|12:16:52.601", + "124.5|424.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|424.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|424.0|Helvetica|8.0|0,0,0|UDP", + "324.5|424.0|Helvetica|8.0|0,0,0|Transport", + "44.5|412.0|Helvetica|8.0|0,0,0|10", + "64.5|412.0|Helvetica|8.0|0,0,0|12:16:52.601", + "124.5|412.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|412.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|412.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|412.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|412.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|404.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|396.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|388.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|380.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|372.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|364.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|352.0|Helvetica|8.0|0,0,0|11", + "64.5|352.0|Helvetica|8.0|0,0,0|12:16:52.657", + "124.5|352.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|352.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|352.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|352.0|Helvetica|8.0|0,0,0|0x806", + "44.5|340.0|Helvetica|8.0|0,0,0|11", + "64.5|340.0|Helvetica|8.0|0,0,0|12:16:52.657", + "124.5|340.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|340.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|340.0|Helvetica|8.0|0,0,0|ARP", + "324.5|340.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|340.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|332.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|324.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|316.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|304.0|Helvetica|8.0|0,0,0|12", + "64.5|304.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|304.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|304.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|304.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|304.0|Helvetica|8.0|0,0,0|0x806", + "44.5|292.0|Helvetica|8.0|0,0,0|12", + "64.5|292.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|292.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|292.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|292.0|Helvetica|8.0|0,0,0|ARP", + "324.5|292.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|292.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|284.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|276.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|268.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|220.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|220.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|220.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|220.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|220.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|220.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|220.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|208.0|Helvetica|8.0|0,0,0|1", + "64.5|208.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|208.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|208.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|208.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|208.0|Helvetica|8.0|0,0,0|0x800", + "44.5|196.0|Helvetica|8.0|0,0,0|1", + "64.5|196.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|196.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|196.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|196.0|Helvetica|8.0|0,0,0|IP", + "324.5|196.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|196.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|184.0|Helvetica|8.0|0,0,0|1", + "64.5|184.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|184.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|184.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|184.0|Helvetica|8.0|0,0,0|UDP", + "324.5|184.0|Helvetica|8.0|0,0,0|Transport", + "44.5|172.0|Helvetica|8.0|0,0,0|1", + "64.5|172.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|172.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|172.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|172.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|172.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|172.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|164.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|156.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|144.0|Helvetica|8.0|0,0,0|2", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|144.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|144.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|144.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|144.0|Helvetica|8.0|0,0,0|0x800", + "44.5|132.0|Helvetica|8.0|0,0,0|2", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|132.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|132.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|132.0|Helvetica|8.0|0,0,0|IP", + "324.5|132.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|132.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|120.0|Helvetica|8.0|0,0,0|2", + "64.5|120.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|120.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|120.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|120.0|Helvetica|8.0|0,0,0|UDP", + "324.5|120.0|Helvetica|8.0|0,0,0|Transport", + "44.5|108.0|Helvetica|8.0|0,0,0|2", + "64.5|108.0|Helvetica|8.0|0,0,0|12:16:52.097", + "124.5|108.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|108.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|108.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|108.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|108.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|100.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|92.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|80.0|Helvetica|8.0|0,0,0|3", + "64.5|80.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|80.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|80.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|80.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|80.0|Helvetica|8.0|0,0,0|0x800", + "44.5|68.0|Helvetica|8.0|0,0,0|3", + "64.5|68.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|68.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|68.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|68.0|Helvetica|8.0|0,0,0|IP", + "324.5|68.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|68.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|56.0|Helvetica|8.0|0,0,0|3", + "64.5|56.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|56.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|56.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|56.0|Helvetica|8.0|0,0,0|UDP", + "324.5|56.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|102.0|Helvetica-Bold|12.0|64,64,64|3.6. ", + "59.35|102.0|Helvetica-Bold|12.0|64,64,64|Rechner 4 - 192.168.0.14", + "44.5|796.0|Helvetica|8.0|0,0,0|3", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.153", + "124.5|796.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|768.0|Helvetica|8.0|0,0,0|4", + "64.5|768.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|768.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|768.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|768.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|768.0|Helvetica|8.0|0,0,0|0x800", + "44.5|756.0|Helvetica|8.0|0,0,0|4", + "64.5|756.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|756.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|756.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|756.0|Helvetica|8.0|0,0,0|IP", + "324.5|756.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|756.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|744.0|Helvetica|8.0|0,0,0|4", + "64.5|744.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|744.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|744.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|744.0|Helvetica|8.0|0,0,0|UDP", + "324.5|744.0|Helvetica|8.0|0,0,0|Transport", + "44.5|732.0|Helvetica|8.0|0,0,0|4", + "64.5|732.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|732.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|732.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|732.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|732.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|732.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|724.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|716.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|704.0|Helvetica|8.0|0,0,0|5", + "64.5|704.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|704.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|704.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|704.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|704.0|Helvetica|8.0|0,0,0|0x800", + "44.5|692.0|Helvetica|8.0|0,0,0|5", + "64.5|692.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|692.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|692.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|692.0|Helvetica|8.0|0,0,0|IP", + "324.5|692.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|692.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|680.0|Helvetica|8.0|0,0,0|5", + "64.5|680.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|680.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|680.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|680.0|Helvetica|8.0|0,0,0|UDP", + "324.5|680.0|Helvetica|8.0|0,0,0|Transport", + "44.5|668.0|Helvetica|8.0|0,0,0|5", + "64.5|668.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|668.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|668.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|668.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|668.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|668.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|660.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|652.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|644.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|636.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|628.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|620.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|608.0|Helvetica|8.0|0,0,0|6", + "64.5|608.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|608.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|608.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|608.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|608.0|Helvetica|8.0|0,0,0|0x806", + "44.5|596.0|Helvetica|8.0|0,0,0|6", + "64.5|596.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|596.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|596.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|596.0|Helvetica|8.0|0,0,0|ARP", + "324.5|596.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|596.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|588.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|580.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|572.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|560.0|Helvetica|8.0|0,0,0|7", + "64.5|560.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|560.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|560.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|560.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|560.0|Helvetica|8.0|0,0,0|0x800", + "44.5|548.0|Helvetica|8.0|0,0,0|7", + "64.5|548.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|548.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|548.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|548.0|Helvetica|8.0|0,0,0|IP", + "324.5|548.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|548.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|536.0|Helvetica|8.0|0,0,0|7", + "64.5|536.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|536.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|536.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|536.0|Helvetica|8.0|0,0,0|UDP", + "324.5|536.0|Helvetica|8.0|0,0,0|Transport", + "44.5|524.0|Helvetica|8.0|0,0,0|7", + "64.5|524.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|524.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|524.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|524.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|524.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|524.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|516.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|508.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|500.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|492.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|484.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|476.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|464.0|Helvetica|8.0|0,0,0|8", + "64.5|464.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|464.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|464.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|464.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|464.0|Helvetica|8.0|0,0,0|0x800", + "44.5|452.0|Helvetica|8.0|0,0,0|8", + "64.5|452.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|452.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|452.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|452.0|Helvetica|8.0|0,0,0|IP", + "324.5|452.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|452.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|440.0|Helvetica|8.0|0,0,0|8", + "64.5|440.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|440.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|440.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|440.0|Helvetica|8.0|0,0,0|UDP", + "324.5|440.0|Helvetica|8.0|0,0,0|Transport", + "44.5|428.0|Helvetica|8.0|0,0,0|8", + "64.5|428.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|428.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|428.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|428.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|428.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|428.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|420.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|412.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|404.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|396.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|388.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|380.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|368.0|Helvetica|8.0|0,0,0|9", + "64.5|368.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|368.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|368.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|368.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|368.0|Helvetica|8.0|0,0,0|0x800", + "44.5|356.0|Helvetica|8.0|0,0,0|9", + "64.5|356.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|356.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|356.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|356.0|Helvetica|8.0|0,0,0|IP", + "324.5|356.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|356.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|344.0|Helvetica|8.0|0,0,0|9", + "64.5|344.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|344.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|344.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|344.0|Helvetica|8.0|0,0,0|UDP", + "324.5|344.0|Helvetica|8.0|0,0,0|Transport", + "44.5|332.0|Helvetica|8.0|0,0,0|9", + "64.5|332.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|332.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|332.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|332.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|332.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|332.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|324.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|316.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|308.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|300.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|292.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|284.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|272.0|Helvetica|8.0|0,0,0|10", + "64.5|272.0|Helvetica|8.0|0,0,0|12:16:52.657", + "124.5|272.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|272.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|272.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|272.0|Helvetica|8.0|0,0,0|0x806", + "44.5|260.0|Helvetica|8.0|0,0,0|10", + "64.5|260.0|Helvetica|8.0|0,0,0|12:16:52.657", + "124.5|260.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|260.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|260.0|Helvetica|8.0|0,0,0|ARP", + "324.5|260.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|260.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|252.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|244.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|236.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|224.0|Helvetica|8.0|0,0,0|11", + "64.5|224.0|Helvetica|8.0|0,0,0|12:16:52.712", + "124.5|224.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|224.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|224.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|224.0|Helvetica|8.0|0,0,0|0x806", + "44.5|212.0|Helvetica|8.0|0,0,0|11", + "64.5|212.0|Helvetica|8.0|0,0,0|12:16:52.712", + "124.5|212.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|212.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|212.0|Helvetica|8.0|0,0,0|ARP", + "324.5|212.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|212.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|204.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|196.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|188.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|176.0|Helvetica|8.0|0,0,0|12", + "64.5|176.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|176.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|176.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|176.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|176.0|Helvetica|8.0|0,0,0|0x806", + "44.5|164.0|Helvetica|8.0|0,0,0|12", + "64.5|164.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|164.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|164.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|164.0|Helvetica|8.0|0,0,0|ARP", + "324.5|164.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|164.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|156.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|148.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|140.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|92.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|92.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|92.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|92.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|92.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|92.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|92.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|80.0|Helvetica|8.0|0,0,0|1", + "64.5|80.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|80.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|80.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|80.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|80.0|Helvetica|8.0|0,0,0|0x800", + "44.5|68.0|Helvetica|8.0|0,0,0|1", + "64.5|68.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|68.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|68.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|68.0|Helvetica|8.0|0,0,0|IP", + "324.5|68.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|68.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|56.0|Helvetica|8.0|0,0,0|1", + "64.5|56.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|56.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|56.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|56.0|Helvetica|8.0|0,0,0|UDP", + "324.5|56.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "44.5|796.0|Helvetica|8.0|0,0,0|1", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|796.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|768.0|Helvetica|8.0|0,0,0|2", + "64.5|768.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|768.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|768.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|768.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|768.0|Helvetica|8.0|0,0,0|0x800", + "44.5|756.0|Helvetica|8.0|0,0,0|2", + "64.5|756.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|756.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|756.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|756.0|Helvetica|8.0|0,0,0|IP", + "324.5|756.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|756.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|744.0|Helvetica|8.0|0,0,0|2", + "64.5|744.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|744.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|744.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|744.0|Helvetica|8.0|0,0,0|UDP", + "324.5|744.0|Helvetica|8.0|0,0,0|Transport", + "44.5|732.0|Helvetica|8.0|0,0,0|2", + "64.5|732.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|732.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|732.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|732.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|732.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|732.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|724.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|716.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|704.0|Helvetica|8.0|0,0,0|3", + "64.5|704.0|Helvetica|8.0|0,0,0|12:16:52.270", + "124.5|704.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|704.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|704.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|704.0|Helvetica|8.0|0,0,0|0x800", + "44.5|692.0|Helvetica|8.0|0,0,0|3", + "64.5|692.0|Helvetica|8.0|0,0,0|12:16:52.270", + "124.5|692.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|692.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|692.0|Helvetica|8.0|0,0,0|IP", + "324.5|692.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|692.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|680.0|Helvetica|8.0|0,0,0|3", + "64.5|680.0|Helvetica|8.0|0,0,0|12:16:52.270", + "124.5|680.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|680.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|680.0|Helvetica|8.0|0,0,0|UDP", + "324.5|680.0|Helvetica|8.0|0,0,0|Transport", + "44.5|668.0|Helvetica|8.0|0,0,0|3", + "64.5|668.0|Helvetica|8.0|0,0,0|12:16:52.270", + "124.5|668.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|668.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|668.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|668.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|668.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|660.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|652.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|640.0|Helvetica|8.0|0,0,0|4", + "64.5|640.0|Helvetica|8.0|0,0,0|12:16:52.326", + "124.5|640.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|640.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|640.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|640.0|Helvetica|8.0|0,0,0|0x800", + "44.5|628.0|Helvetica|8.0|0,0,0|4", + "64.5|628.0|Helvetica|8.0|0,0,0|12:16:52.326", + "124.5|628.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|628.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|628.0|Helvetica|8.0|0,0,0|IP", + "324.5|628.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|628.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|616.0|Helvetica|8.0|0,0,0|4", + "64.5|616.0|Helvetica|8.0|0,0,0|12:16:52.326", + "124.5|616.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|616.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|616.0|Helvetica|8.0|0,0,0|UDP", + "324.5|616.0|Helvetica|8.0|0,0,0|Transport", + "44.5|604.0|Helvetica|8.0|0,0,0|4", + "64.5|604.0|Helvetica|8.0|0,0,0|12:16:52.326", + "124.5|604.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|604.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|604.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|604.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|604.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|596.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|588.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|576.0|Helvetica|8.0|0,0,0|5", + "64.5|576.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|576.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|576.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|576.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|576.0|Helvetica|8.0|0,0,0|0x800", + "44.5|564.0|Helvetica|8.0|0,0,0|5", + "64.5|564.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|564.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|564.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|564.0|Helvetica|8.0|0,0,0|IP", + "324.5|564.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|564.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|552.0|Helvetica|8.0|0,0,0|5", + "64.5|552.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|552.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|552.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|552.0|Helvetica|8.0|0,0,0|UDP", + "324.5|552.0|Helvetica|8.0|0,0,0|Transport", + "44.5|540.0|Helvetica|8.0|0,0,0|5", + "64.5|540.0|Helvetica|8.0|0,0,0|12:16:52.384", + "124.5|540.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|540.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|540.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|540.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|540.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|532.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|524.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|516.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|508.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|500.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|492.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|480.0|Helvetica|8.0|0,0,0|6", + "64.5|480.0|Helvetica|8.0|0,0,0|12:16:52.440", + "124.5|480.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|480.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|480.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|480.0|Helvetica|8.0|0,0,0|0x800", + "44.5|468.0|Helvetica|8.0|0,0,0|6", + "64.5|468.0|Helvetica|8.0|0,0,0|12:16:52.440", + "124.5|468.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|468.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|468.0|Helvetica|8.0|0,0,0|IP", + "324.5|468.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|468.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|456.0|Helvetica|8.0|0,0,0|6", + "64.5|456.0|Helvetica|8.0|0,0,0|12:16:52.440", + "124.5|456.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|456.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|456.0|Helvetica|8.0|0,0,0|UDP", + "324.5|456.0|Helvetica|8.0|0,0,0|Transport", + "44.5|444.0|Helvetica|8.0|0,0,0|6", + "64.5|444.0|Helvetica|8.0|0,0,0|12:16:52.440", + "124.5|444.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|444.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|444.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|444.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|444.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|436.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|428.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|420.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|412.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|404.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|396.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|384.0|Helvetica|8.0|0,0,0|7", + "64.5|384.0|Helvetica|8.0|0,0,0|12:16:52.495", + "124.5|384.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|384.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|384.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|384.0|Helvetica|8.0|0,0,0|0x800", + "44.5|372.0|Helvetica|8.0|0,0,0|7", + "64.5|372.0|Helvetica|8.0|0,0,0|12:16:52.495", + "124.5|372.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|372.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|372.0|Helvetica|8.0|0,0,0|IP", + "324.5|372.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|372.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|360.0|Helvetica|8.0|0,0,0|7", + "64.5|360.0|Helvetica|8.0|0,0,0|12:16:52.495", + "124.5|360.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|360.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|360.0|Helvetica|8.0|0,0,0|UDP", + "324.5|360.0|Helvetica|8.0|0,0,0|Transport", + "44.5|348.0|Helvetica|8.0|0,0,0|7", + "64.5|348.0|Helvetica|8.0|0,0,0|12:16:52.495", + "124.5|348.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|348.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|348.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|348.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|348.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|340.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|332.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|324.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|316.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|308.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|300.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|288.0|Helvetica|8.0|0,0,0|8", + "64.5|288.0|Helvetica|8.0|0,0,0|12:16:52.551", + "124.5|288.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|288.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|288.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|288.0|Helvetica|8.0|0,0,0|0x800", + "44.5|276.0|Helvetica|8.0|0,0,0|8", + "64.5|276.0|Helvetica|8.0|0,0,0|12:16:52.551", + "124.5|276.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|276.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|276.0|Helvetica|8.0|0,0,0|IP", + "324.5|276.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|276.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|264.0|Helvetica|8.0|0,0,0|8", + "64.5|264.0|Helvetica|8.0|0,0,0|12:16:52.551", + "124.5|264.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|264.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|264.0|Helvetica|8.0|0,0,0|UDP", + "324.5|264.0|Helvetica|8.0|0,0,0|Transport", + "44.5|252.0|Helvetica|8.0|0,0,0|8", + "64.5|252.0|Helvetica|8.0|0,0,0|12:16:52.551", + "124.5|252.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|252.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|252.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|252.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|252.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|244.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|236.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|228.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|220.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|212.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|204.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|192.0|Helvetica|8.0|0,0,0|9", + "64.5|192.0|Helvetica|8.0|0,0,0|12:16:52.606", + "124.5|192.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|192.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|192.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|192.0|Helvetica|8.0|0,0,0|0x806", + "44.5|180.0|Helvetica|8.0|0,0,0|9", + "64.5|180.0|Helvetica|8.0|0,0,0|12:16:52.606", + "124.5|180.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|180.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|180.0|Helvetica|8.0|0,0,0|ARP", + "324.5|180.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|180.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|172.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|164.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|156.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|144.0|Helvetica|8.0|0,0,0|10", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.662", + "124.5|144.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|144.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|144.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|144.0|Helvetica|8.0|0,0,0|0x806", + "44.5|132.0|Helvetica|8.0|0,0,0|10", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.662", + "124.5|132.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|132.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|132.0|Helvetica|8.0|0,0,0|ARP", + "324.5|132.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|132.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|124.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|116.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|108.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|96.0|Helvetica|8.0|0,0,0|11", + "64.5|96.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|96.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|96.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|96.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|96.0|Helvetica|8.0|0,0,0|0x806", + "44.5|84.0|Helvetica|8.0|0,0,0|11", + "64.5|84.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|84.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|84.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|84.0|Helvetica|8.0|0,0,0|ARP", + "324.5|84.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|84.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|76.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|68.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|60.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|48.0|Helvetica|8.0|0,0,0|12", + "64.5|48.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|48.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|48.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|48.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|48.0|Helvetica|8.0|0,0,0|0x806" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|734.0|Helvetica-Bold|12.0|64,64,64|3.7. ", + "59.35|734.0|Helvetica-Bold|12.0|64,64,64|Notebook 4 - 0.0.0.0", + "44.5|796.0|Helvetica|8.0|0,0,0|12", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|796.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|796.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|796.0|Helvetica|8.0|0,0,0|ARP", + "324.5|796.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|796.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|788.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|780.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|772.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|724.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|724.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|724.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|724.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|724.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|724.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|724.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|712.0|Helvetica|8.0|0,0,0|1", + "64.5|712.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|712.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|712.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|712.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|712.0|Helvetica|8.0|0,0,0|0x800", + "44.5|700.0|Helvetica|8.0|0,0,0|1", + "64.5|700.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|700.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|700.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|700.0|Helvetica|8.0|0,0,0|IP", + "324.5|700.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|700.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|688.0|Helvetica|8.0|0,0,0|1", + "64.5|688.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|688.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|688.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|688.0|Helvetica|8.0|0,0,0|UDP", + "324.5|688.0|Helvetica|8.0|0,0,0|Transport", + "44.5|676.0|Helvetica|8.0|0,0,0|1", + "64.5|676.0|Helvetica|8.0|0,0,0|12:16:51.909", + "124.5|676.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|676.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|676.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|676.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|676.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|668.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|660.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|648.0|Helvetica|8.0|0,0,0|2", + "64.5|648.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|648.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|648.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|648.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|648.0|Helvetica|8.0|0,0,0|0x800", + "44.5|636.0|Helvetica|8.0|0,0,0|2", + "64.5|636.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|636.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|636.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|636.0|Helvetica|8.0|0,0,0|IP", + "324.5|636.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|636.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|624.0|Helvetica|8.0|0,0,0|2", + "64.5|624.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|624.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|624.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|624.0|Helvetica|8.0|0,0,0|UDP", + "324.5|624.0|Helvetica|8.0|0,0,0|Transport", + "44.5|612.0|Helvetica|8.0|0,0,0|2", + "64.5|612.0|Helvetica|8.0|0,0,0|12:16:52.041", + "124.5|612.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|612.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|612.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|612.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|612.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|604.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|596.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|584.0|Helvetica|8.0|0,0,0|3", + "64.5|584.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|584.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|584.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|584.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|584.0|Helvetica|8.0|0,0,0|0x800", + "44.5|572.0|Helvetica|8.0|0,0,0|3", + "64.5|572.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|572.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|572.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|572.0|Helvetica|8.0|0,0,0|IP", + "324.5|572.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|572.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|560.0|Helvetica|8.0|0,0,0|3", + "64.5|560.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|560.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|560.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|560.0|Helvetica|8.0|0,0,0|UDP", + "324.5|560.0|Helvetica|8.0|0,0,0|Transport", + "44.5|548.0|Helvetica|8.0|0,0,0|3", + "64.5|548.0|Helvetica|8.0|0,0,0|12:16:52.100", + "124.5|548.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|548.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|548.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|548.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|548.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|540.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|532.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|520.0|Helvetica|8.0|0,0,0|4", + "64.5|520.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|520.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|520.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|520.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|520.0|Helvetica|8.0|0,0,0|0x800", + "44.5|508.0|Helvetica|8.0|0,0,0|4", + "64.5|508.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|508.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|508.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|508.0|Helvetica|8.0|0,0,0|IP", + "324.5|508.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|508.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|496.0|Helvetica|8.0|0,0,0|4", + "64.5|496.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|496.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|496.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|496.0|Helvetica|8.0|0,0,0|UDP", + "324.5|496.0|Helvetica|8.0|0,0,0|Transport", + "44.5|484.0|Helvetica|8.0|0,0,0|4", + "64.5|484.0|Helvetica|8.0|0,0,0|12:16:52.211", + "124.5|484.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|484.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|484.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|484.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|484.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|476.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|468.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|456.0|Helvetica|8.0|0,0,0|5", + "64.5|456.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|456.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|456.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|456.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|456.0|Helvetica|8.0|0,0,0|0x800", + "44.5|444.0|Helvetica|8.0|0,0,0|5", + "64.5|444.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|444.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|444.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|444.0|Helvetica|8.0|0,0,0|IP", + "324.5|444.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|444.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|432.0|Helvetica|8.0|0,0,0|5", + "64.5|432.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|432.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|432.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|432.0|Helvetica|8.0|0,0,0|UDP", + "324.5|432.0|Helvetica|8.0|0,0,0|Transport", + "44.5|420.0|Helvetica|8.0|0,0,0|5", + "64.5|420.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|420.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|420.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|420.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|420.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|420.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|412.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|404.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|396.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|388.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|380.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|372.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|360.0|Helvetica|8.0|0,0,0|6", + "64.5|360.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|360.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|360.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|360.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|360.0|Helvetica|8.0|0,0,0|0x800", + "44.5|348.0|Helvetica|8.0|0,0,0|6", + "64.5|348.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|348.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|348.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|348.0|Helvetica|8.0|0,0,0|IP", + "324.5|348.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|348.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|336.0|Helvetica|8.0|0,0,0|6", + "64.5|336.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|336.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|336.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|336.0|Helvetica|8.0|0,0,0|UDP", + "324.5|336.0|Helvetica|8.0|0,0,0|Transport", + "44.5|324.0|Helvetica|8.0|0,0,0|6", + "64.5|324.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|324.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|324.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|324.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|324.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|324.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|316.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|308.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|300.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|292.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|284.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|276.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|264.0|Helvetica|8.0|0,0,0|7", + "64.5|264.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|264.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|264.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|264.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|264.0|Helvetica|8.0|0,0,0|0x806", + "44.5|252.0|Helvetica|8.0|0,0,0|7", + "64.5|252.0|Helvetica|8.0|0,0,0|12:16:52.435", + "124.5|252.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|252.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|252.0|Helvetica|8.0|0,0,0|ARP", + "324.5|252.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|252.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|244.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|236.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|228.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|216.0|Helvetica|8.0|0,0,0|8", + "64.5|216.0|Helvetica|8.0|0,0,0|12:16:52.491", + "124.5|216.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|216.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|216.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|216.0|Helvetica|8.0|0,0,0|0x806", + "44.5|204.0|Helvetica|8.0|0,0,0|8", + "64.5|204.0|Helvetica|8.0|0,0,0|12:16:52.491", + "124.5|204.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|204.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|204.0|Helvetica|8.0|0,0,0|ARP", + "324.5|204.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|204.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|196.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|188.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|180.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|168.0|Helvetica|8.0|0,0,0|9", + "64.5|168.0|Helvetica|8.0|0,0,0|12:16:52.547", + "124.5|168.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|168.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|168.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|168.0|Helvetica|8.0|0,0,0|0x800", + "44.5|156.0|Helvetica|8.0|0,0,0|9", + "64.5|156.0|Helvetica|8.0|0,0,0|12:16:52.547", + "124.5|156.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|156.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|156.0|Helvetica|8.0|0,0,0|IP", + "324.5|156.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|156.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|144.0|Helvetica|8.0|0,0,0|9", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.547", + "124.5|144.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|144.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|144.0|Helvetica|8.0|0,0,0|UDP", + "324.5|144.0|Helvetica|8.0|0,0,0|Transport", + "44.5|132.0|Helvetica|8.0|0,0,0|9", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.547", + "124.5|132.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|132.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|132.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|132.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|132.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|124.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|116.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|108.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|100.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|92.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|84.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|72.0|Helvetica|8.0|0,0,0|10", + "64.5|72.0|Helvetica|8.0|0,0,0|12:16:52.603", + "124.5|72.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|72.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|72.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|72.0|Helvetica|8.0|0,0,0|0x800", + "44.5|60.0|Helvetica|8.0|0,0,0|10", + "64.5|60.0|Helvetica|8.0|0,0,0|12:16:52.603", + "124.5|60.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|60.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|60.0|Helvetica|8.0|0,0,0|IP", + "324.5|60.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|60.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|48.0|Helvetica|8.0|0,0,0|10", + "64.5|48.0|Helvetica|8.0|0,0,0|12:16:52.603", + "124.5|48.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|48.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|48.0|Helvetica|8.0|0,0,0|UDP", + "324.5|48.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|614.0|Helvetica-Bold|12.0|64,64,64|3.8. ", + "59.35|614.0|Helvetica-Bold|12.0|64,64,64|Rechner 2 - 192.168.0.12", + "44.5|796.0|Helvetica|8.0|0,0,0|10", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.603", + "124.5|796.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|772.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|764.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|756.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|748.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|736.0|Helvetica|8.0|0,0,0|11", + "64.5|736.0|Helvetica|8.0|0,0,0|12:16:52.714", + "124.5|736.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|736.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|736.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|736.0|Helvetica|8.0|0,0,0|0x806", + "44.5|724.0|Helvetica|8.0|0,0,0|11", + "64.5|724.0|Helvetica|8.0|0,0,0|12:16:52.714", + "124.5|724.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|724.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|724.0|Helvetica|8.0|0,0,0|ARP", + "324.5|724.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|724.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|716.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|708.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|700.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|688.0|Helvetica|8.0|0,0,0|12", + "64.5|688.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|688.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|688.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|688.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|688.0|Helvetica|8.0|0,0,0|0x806", + "44.5|676.0|Helvetica|8.0|0,0,0|12", + "64.5|676.0|Helvetica|8.0|0,0,0|12:16:52.769", + "124.5|676.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|676.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|676.0|Helvetica|8.0|0,0,0|ARP", + "324.5|676.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|676.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|668.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|660.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|652.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|604.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|604.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|604.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|604.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|604.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|604.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|604.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|592.0|Helvetica|8.0|0,0,0|1", + "64.5|592.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|592.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|592.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|592.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|592.0|Helvetica|8.0|0,0,0|0x800", + "44.5|580.0|Helvetica|8.0|0,0,0|1", + "64.5|580.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|580.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|580.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|580.0|Helvetica|8.0|0,0,0|IP", + "324.5|580.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|580.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|568.0|Helvetica|8.0|0,0,0|1", + "64.5|568.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|568.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|568.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|568.0|Helvetica|8.0|0,0,0|UDP", + "324.5|568.0|Helvetica|8.0|0,0,0|Transport", + "44.5|556.0|Helvetica|8.0|0,0,0|1", + "64.5|556.0|Helvetica|8.0|0,0,0|12:16:52.155", + "124.5|556.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|556.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|556.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|556.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|556.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|548.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|540.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|528.0|Helvetica|8.0|0,0,0|2", + "64.5|528.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|528.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|528.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|528.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|528.0|Helvetica|8.0|0,0,0|0x800", + "44.5|516.0|Helvetica|8.0|0,0,0|2", + "64.5|516.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|516.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|516.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|516.0|Helvetica|8.0|0,0,0|IP", + "324.5|516.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|516.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|504.0|Helvetica|8.0|0,0,0|2", + "64.5|504.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|504.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|504.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|504.0|Helvetica|8.0|0,0,0|UDP", + "324.5|504.0|Helvetica|8.0|0,0,0|Transport", + "44.5|492.0|Helvetica|8.0|0,0,0|2", + "64.5|492.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|492.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|492.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|492.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|492.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|492.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|484.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|476.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|464.0|Helvetica|8.0|0,0,0|3", + "64.5|464.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|464.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|464.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|464.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|464.0|Helvetica|8.0|0,0,0|0x800", + "44.5|452.0|Helvetica|8.0|0,0,0|3", + "64.5|452.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|452.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|452.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|452.0|Helvetica|8.0|0,0,0|IP", + "324.5|452.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|452.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|440.0|Helvetica|8.0|0,0,0|3", + "64.5|440.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|440.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|440.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|440.0|Helvetica|8.0|0,0,0|UDP", + "324.5|440.0|Helvetica|8.0|0,0,0|Transport", + "44.5|428.0|Helvetica|8.0|0,0,0|3", + "64.5|428.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|428.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|428.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|428.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|428.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|428.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|420.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|412.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|400.0|Helvetica|8.0|0,0,0|4", + "64.5|400.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|400.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|400.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|400.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|400.0|Helvetica|8.0|0,0,0|0x800", + "44.5|388.0|Helvetica|8.0|0,0,0|4", + "64.5|388.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|388.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|388.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|388.0|Helvetica|8.0|0,0,0|IP", + "324.5|388.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|388.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|376.0|Helvetica|8.0|0,0,0|4", + "64.5|376.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|376.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|376.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|376.0|Helvetica|8.0|0,0,0|UDP", + "324.5|376.0|Helvetica|8.0|0,0,0|Transport", + "44.5|364.0|Helvetica|8.0|0,0,0|4", + "64.5|364.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|364.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|364.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|364.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|364.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|364.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|356.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|348.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|336.0|Helvetica|8.0|0,0,0|5", + "64.5|336.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|336.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|336.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|336.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|336.0|Helvetica|8.0|0,0,0|0x800", + "44.5|324.0|Helvetica|8.0|0,0,0|5", + "64.5|324.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|324.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|324.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|324.0|Helvetica|8.0|0,0,0|IP", + "324.5|324.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|324.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|312.0|Helvetica|8.0|0,0,0|5", + "64.5|312.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|312.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|312.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|312.0|Helvetica|8.0|0,0,0|UDP", + "324.5|312.0|Helvetica|8.0|0,0,0|Transport", + "44.5|300.0|Helvetica|8.0|0,0,0|5", + "64.5|300.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|300.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|300.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|300.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|300.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|300.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|292.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|284.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|276.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|268.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|260.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|252.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|240.0|Helvetica|8.0|0,0,0|6", + "64.5|240.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|240.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|240.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|240.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|240.0|Helvetica|8.0|0,0,0|0x800", + "44.5|228.0|Helvetica|8.0|0,0,0|6", + "64.5|228.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|228.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|228.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|228.0|Helvetica|8.0|0,0,0|IP", + "324.5|228.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|228.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|216.0|Helvetica|8.0|0,0,0|6", + "64.5|216.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|216.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|216.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|216.0|Helvetica|8.0|0,0,0|UDP", + "324.5|216.0|Helvetica|8.0|0,0,0|Transport", + "44.5|204.0|Helvetica|8.0|0,0,0|6", + "64.5|204.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|204.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|204.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|204.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|204.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|204.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|196.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|188.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|180.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|172.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|164.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|156.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|144.0|Helvetica|8.0|0,0,0|7", + "64.5|144.0|Helvetica|8.0|0,0,0|12:16:52.492", + "124.5|144.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|144.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|144.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|144.0|Helvetica|8.0|0,0,0|0x800", + "44.5|132.0|Helvetica|8.0|0,0,0|7", + "64.5|132.0|Helvetica|8.0|0,0,0|12:16:52.492", + "124.5|132.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|132.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|132.0|Helvetica|8.0|0,0,0|IP", + "324.5|132.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|132.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|120.0|Helvetica|8.0|0,0,0|7", + "64.5|120.0|Helvetica|8.0|0,0,0|12:16:52.492", + "124.5|120.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|120.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|120.0|Helvetica|8.0|0,0,0|UDP", + "324.5|120.0|Helvetica|8.0|0,0,0|Transport", + "44.5|108.0|Helvetica|8.0|0,0,0|7", + "64.5|108.0|Helvetica|8.0|0,0,0|12:16:52.492", + "124.5|108.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|108.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|108.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|108.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|108.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|100.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|92.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|84.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|76.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|68.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|60.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|48.0|Helvetica|8.0|0,0,0|8", + "64.5|48.0|Helvetica|8.0|0,0,0|12:16:52.548", + "124.5|48.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|48.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|48.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|48.0|Helvetica|8.0|0,0,0|0x800" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|494.0|Helvetica-Bold|12.0|64,64,64|3.9. ", + "59.35|494.0|Helvetica-Bold|12.0|64,64,64|Rechner 1 - 192.168.0.11", + "44.5|796.0|Helvetica|8.0|0,0,0|8", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.548", + "124.5|796.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|796.0|Helvetica|8.0|0,0,0|IP", + "324.5|796.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|796.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|784.0|Helvetica|8.0|0,0,0|8", + "64.5|784.0|Helvetica|8.0|0,0,0|12:16:52.548", + "124.5|784.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|784.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|784.0|Helvetica|8.0|0,0,0|UDP", + "324.5|784.0|Helvetica|8.0|0,0,0|Transport", + "44.5|772.0|Helvetica|8.0|0,0,0|8", + "64.5|772.0|Helvetica|8.0|0,0,0|12:16:52.548", + "124.5|772.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|772.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|772.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|772.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|772.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|764.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|756.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|748.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|740.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|732.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|724.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|712.0|Helvetica|8.0|0,0,0|9", + "64.5|712.0|Helvetica|8.0|0,0,0|12:16:52.604", + "124.5|712.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|712.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|712.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|712.0|Helvetica|8.0|0,0,0|0x806", + "44.5|700.0|Helvetica|8.0|0,0,0|9", + "64.5|700.0|Helvetica|8.0|0,0,0|12:16:52.604", + "124.5|700.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|700.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|700.0|Helvetica|8.0|0,0,0|ARP", + "324.5|700.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|700.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|692.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|684.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|676.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|664.0|Helvetica|8.0|0,0,0|10", + "64.5|664.0|Helvetica|8.0|0,0,0|12:16:52.660", + "124.5|664.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|664.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|664.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|664.0|Helvetica|8.0|0,0,0|0x806", + "44.5|652.0|Helvetica|8.0|0,0,0|10", + "64.5|652.0|Helvetica|8.0|0,0,0|12:16:52.660", + "124.5|652.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|652.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|652.0|Helvetica|8.0|0,0,0|ARP", + "324.5|652.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|652.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|644.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|636.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|628.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|616.0|Helvetica|8.0|0,0,0|11", + "64.5|616.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|616.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|616.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|616.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|616.0|Helvetica|8.0|0,0,0|0x806", + "44.5|604.0|Helvetica|8.0|0,0,0|11", + "64.5|604.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|604.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|604.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|604.0|Helvetica|8.0|0,0,0|ARP", + "324.5|604.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|604.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|596.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|588.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|580.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|568.0|Helvetica|8.0|0,0,0|12", + "64.5|568.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|568.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|568.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|568.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|568.0|Helvetica|8.0|0,0,0|0x806", + "44.5|556.0|Helvetica|8.0|0,0,0|12", + "64.5|556.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|556.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|556.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|556.0|Helvetica|8.0|0,0,0|ARP", + "324.5|556.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|556.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|548.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|540.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|532.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]", + "44.5|484.0|Helvetica-Bold|8.0|0,0,0|Nr.", + "64.5|484.0|Helvetica-Bold|8.0|0,0,0|Zeit", + "124.5|484.0|Helvetica-Bold|8.0|0,0,0|Quelle", + "204.5|484.0|Helvetica-Bold|8.0|0,0,0|Ziel", + "284.5|484.0|Helvetica-Bold|8.0|0,0,0|Protokoll", + "324.5|484.0|Helvetica-Bold|8.0|0,0,0|Schicht", + "374.5|484.0|Helvetica-Bold|8.0|0,0,0|Bemerkungen / Details", + "44.5|472.0|Helvetica|8.0|0,0,0|1", + "64.5|472.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|472.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|472.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|472.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|472.0|Helvetica|8.0|0,0,0|0x800", + "44.5|460.0|Helvetica|8.0|0,0,0|1", + "64.5|460.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|460.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|460.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|460.0|Helvetica|8.0|0,0,0|IP", + "324.5|460.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|460.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|448.0|Helvetica|8.0|0,0,0|1", + "64.5|448.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|448.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|448.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|448.0|Helvetica|8.0|0,0,0|UDP", + "324.5|448.0|Helvetica|8.0|0,0,0|Transport", + "44.5|436.0|Helvetica|8.0|0,0,0|1", + "64.5|436.0|Helvetica|8.0|0,0,0|12:16:52.154", + "124.5|436.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|436.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|436.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|436.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|436.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|428.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|420.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "44.5|408.0|Helvetica|8.0|0,0,0|2", + "64.5|408.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|408.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|408.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|408.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|408.0|Helvetica|8.0|0,0,0|0x800", + "44.5|396.0|Helvetica|8.0|0,0,0|2", + "64.5|396.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|396.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|396.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|396.0|Helvetica|8.0|0,0,0|IP", + "324.5|396.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|396.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|384.0|Helvetica|8.0|0,0,0|2", + "64.5|384.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|384.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|384.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|384.0|Helvetica|8.0|0,0,0|UDP", + "324.5|384.0|Helvetica|8.0|0,0,0|Transport", + "44.5|372.0|Helvetica|8.0|0,0,0|2", + "64.5|372.0|Helvetica|8.0|0,0,0|12:16:52.210", + "124.5|372.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|372.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|372.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|372.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|372.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|364.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|356.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "44.5|344.0|Helvetica|8.0|0,0,0|3", + "64.5|344.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|344.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|344.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|344.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|344.0|Helvetica|8.0|0,0,0|0x800", + "44.5|332.0|Helvetica|8.0|0,0,0|3", + "64.5|332.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|332.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|332.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|332.0|Helvetica|8.0|0,0,0|IP", + "324.5|332.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|332.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|320.0|Helvetica|8.0|0,0,0|3", + "64.5|320.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|320.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|320.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|320.0|Helvetica|8.0|0,0,0|UDP", + "324.5|320.0|Helvetica|8.0|0,0,0|Transport", + "44.5|308.0|Helvetica|8.0|0,0,0|3", + "64.5|308.0|Helvetica|8.0|0,0,0|12:16:52.266", + "124.5|308.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|308.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|308.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|308.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|308.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|300.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|292.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "44.5|280.0|Helvetica|8.0|0,0,0|4", + "64.5|280.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|280.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|280.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|280.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|280.0|Helvetica|8.0|0,0,0|0x800", + "44.5|268.0|Helvetica|8.0|0,0,0|4", + "64.5|268.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|268.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|268.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|268.0|Helvetica|8.0|0,0,0|IP", + "324.5|268.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|268.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|256.0|Helvetica|8.0|0,0,0|4", + "64.5|256.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|256.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|256.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|256.0|Helvetica|8.0|0,0,0|UDP", + "324.5|256.0|Helvetica|8.0|0,0,0|Transport", + "44.5|244.0|Helvetica|8.0|0,0,0|4", + "64.5|244.0|Helvetica|8.0|0,0,0|12:16:52.322", + "124.5|244.0|Helvetica|8.0|0,0,0|0.0.0.0:68", + "204.5|244.0|Helvetica|8.0|0,0,0|255.255.255.255:67", + "284.5|244.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|244.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|244.0|Helvetica|8.0|0,0,0|DHCPDISCOVER", + "374.5|236.0|Helvetica|8.0|0,0,0|yiaddr=0.0.0.0", + "374.5|228.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "44.5|216.0|Helvetica|8.0|0,0,0|5", + "64.5|216.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|216.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|216.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|216.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|216.0|Helvetica|8.0|0,0,0|0x800", + "44.5|204.0|Helvetica|8.0|0,0,0|5", + "64.5|204.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|204.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|204.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|204.0|Helvetica|8.0|0,0,0|IP", + "324.5|204.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|204.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|192.0|Helvetica|8.0|0,0,0|5", + "64.5|192.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|192.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|192.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|192.0|Helvetica|8.0|0,0,0|UDP", + "324.5|192.0|Helvetica|8.0|0,0,0|Transport", + "44.5|180.0|Helvetica|8.0|0,0,0|5", + "64.5|180.0|Helvetica|8.0|0,0,0|12:16:52.378", + "124.5|180.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|180.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|180.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|180.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|180.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|172.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.21", + "374.5|164.0|Helvetica|8.0|0,0,0|chaddr=22:A7:41:17:3E:42", + "374.5|156.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|148.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|140.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|132.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|120.0|Helvetica|8.0|0,0,0|6", + "64.5|120.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|120.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|120.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|120.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|120.0|Helvetica|8.0|0,0,0|0x800", + "44.5|108.0|Helvetica|8.0|0,0,0|6", + "64.5|108.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|108.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|108.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|108.0|Helvetica|8.0|0,0,0|IP", + "324.5|108.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|108.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|96.0|Helvetica|8.0|0,0,0|6", + "64.5|96.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|96.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|96.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|96.0|Helvetica|8.0|0,0,0|UDP", + "324.5|96.0|Helvetica|8.0|0,0,0|Transport" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "44.5|796.0|Helvetica|8.0|0,0,0|6", + "64.5|796.0|Helvetica|8.0|0,0,0|12:16:52.434", + "124.5|796.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|796.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|796.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|796.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|796.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|788.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.22", + "374.5|780.0|Helvetica|8.0|0,0,0|chaddr=BE:B8:36:9D:43:C7", + "374.5|772.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|764.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|756.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|748.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|736.0|Helvetica|8.0|0,0,0|7", + "64.5|736.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|736.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|736.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|736.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|736.0|Helvetica|8.0|0,0,0|0x800", + "44.5|724.0|Helvetica|8.0|0,0,0|7", + "64.5|724.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|724.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|724.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|724.0|Helvetica|8.0|0,0,0|IP", + "324.5|724.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|724.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|712.0|Helvetica|8.0|0,0,0|7", + "64.5|712.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|712.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|712.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|712.0|Helvetica|8.0|0,0,0|UDP", + "324.5|712.0|Helvetica|8.0|0,0,0|Transport", + "44.5|700.0|Helvetica|8.0|0,0,0|7", + "64.5|700.0|Helvetica|8.0|0,0,0|12:16:52.490", + "124.5|700.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|700.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|700.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|700.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|700.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|692.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.23", + "374.5|684.0|Helvetica|8.0|0,0,0|chaddr=1A:B7:08:95:D9:C1", + "374.5|676.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|668.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|660.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|652.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|640.0|Helvetica|8.0|0,0,0|8", + "64.5|640.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|640.0|Helvetica|8.0|0,0,0|D6:07:2F:55:07:68", + "204.5|640.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|640.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|640.0|Helvetica|8.0|0,0,0|0x800", + "44.5|628.0|Helvetica|8.0|0,0,0|8", + "64.5|628.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|628.0|Helvetica|8.0|0,0,0|192.168.0.100", + "204.5|628.0|Helvetica|8.0|0,0,0|255.255.255.255", + "284.5|628.0|Helvetica|8.0|0,0,0|IP", + "324.5|628.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|628.0|Helvetica|8.0|0,0,0|Protokoll: 17, TTL: 1", + "44.5|616.0|Helvetica|8.0|0,0,0|8", + "64.5|616.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|616.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|616.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|616.0|Helvetica|8.0|0,0,0|UDP", + "324.5|616.0|Helvetica|8.0|0,0,0|Transport", + "44.5|604.0|Helvetica|8.0|0,0,0|8", + "64.5|604.0|Helvetica|8.0|0,0,0|12:16:52.546", + "124.5|604.0|Helvetica|8.0|0,0,0|192.168.0.100:67", + "204.5|604.0|Helvetica|8.0|0,0,0|255.255.255.255:68", + "284.5|604.0|Helvetica|8.0|0,0,0|DHCP", + "324.5|604.0|Helvetica|8.0|0,0,0|Anwendung", + "374.5|604.0|Helvetica|8.0|0,0,0|DHCPOFFER", + "374.5|596.0|Helvetica|8.0|0,0,0|yiaddr=192.168.0.24", + "374.5|588.0|Helvetica|8.0|0,0,0|chaddr=3A:15:27:11:6C:BA", + "374.5|580.0|Helvetica|8.0|0,0,0|router=0.0.0.0", + "374.5|572.0|Helvetica|8.0|0,0,0|subnetmask=255.255.255.0", + "374.5|564.0|Helvetica|8.0|0,0,0|dnsserver=192.168.0.100", + "374.5|556.0|Helvetica|8.0|0,0,0|serverident=192.168.0.100", + "44.5|544.0|Helvetica|8.0|0,0,0|9", + "64.5|544.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|544.0|Helvetica|8.0|0,0,0|22:A7:41:17:3E:42", + "204.5|544.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|544.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|544.0|Helvetica|8.0|0,0,0|0x806", + "44.5|532.0|Helvetica|8.0|0,0,0|9", + "64.5|532.0|Helvetica|8.0|0,0,0|12:16:52.602", + "124.5|532.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|532.0|Helvetica|8.0|0,0,0|192.168.0.21", + "284.5|532.0|Helvetica|8.0|0,0,0|ARP", + "324.5|532.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|532.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.21", + "374.5|524.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|516.0|Helvetica|8.0|0,0,0|sender=22:A7:41:17:3E:42|0.0.0.0,", + "374.5|508.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.21]", + "44.5|496.0|Helvetica|8.0|0,0,0|10", + "64.5|496.0|Helvetica|8.0|0,0,0|12:16:52.660", + "124.5|496.0|Helvetica|8.0|0,0,0|BE:B8:36:9D:43:C7", + "204.5|496.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|496.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|496.0|Helvetica|8.0|0,0,0|0x806", + "44.5|484.0|Helvetica|8.0|0,0,0|10", + "64.5|484.0|Helvetica|8.0|0,0,0|12:16:52.660", + "124.5|484.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|484.0|Helvetica|8.0|0,0,0|192.168.0.22", + "284.5|484.0|Helvetica|8.0|0,0,0|ARP", + "324.5|484.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|484.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.22", + "374.5|476.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|468.0|Helvetica|8.0|0,0,0|sender=BE:B8:36:9D:43:C7|0.0.0.0,", + "374.5|460.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.22]", + "44.5|448.0|Helvetica|8.0|0,0,0|11", + "64.5|448.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|448.0|Helvetica|8.0|0,0,0|1A:B7:08:95:D9:C1", + "204.5|448.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|448.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|448.0|Helvetica|8.0|0,0,0|0x806", + "44.5|436.0|Helvetica|8.0|0,0,0|11", + "64.5|436.0|Helvetica|8.0|0,0,0|12:16:52.768", + "124.5|436.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|436.0|Helvetica|8.0|0,0,0|192.168.0.23", + "284.5|436.0|Helvetica|8.0|0,0,0|ARP", + "324.5|436.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|436.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.23", + "374.5|428.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|420.0|Helvetica|8.0|0,0,0|sender=1A:B7:08:95:D9:C1|0.0.0.0,", + "374.5|412.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.23]", + "44.5|400.0|Helvetica|8.0|0,0,0|12", + "64.5|400.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|400.0|Helvetica|8.0|0,0,0|3A:15:27:11:6C:BA", + "204.5|400.0|Helvetica|8.0|0,0,0|FF:FF:FF:FF:FF:FF", + "324.5|400.0|Helvetica|8.0|0,0,0|Netzzugang", + "374.5|400.0|Helvetica|8.0|0,0,0|0x806", + "44.5|388.0|Helvetica|8.0|0,0,0|12", + "64.5|388.0|Helvetica|8.0|0,0,0|12:16:52.880", + "124.5|388.0|Helvetica|8.0|0,0,0|0.0.0.0", + "204.5|388.0|Helvetica|8.0|0,0,0|192.168.0.24", + "284.5|388.0|Helvetica|8.0|0,0,0|ARP", + "324.5|388.0|Helvetica|8.0|0,0,0|Vermittlung", + "374.5|388.0|Helvetica|8.0|0,0,0|Suche nach MAC für 192.168.0.24", + "374.5|380.0|Helvetica|8.0|0,0,0|[op=REQUEST,", + "374.5|372.0|Helvetica|8.0|0,0,0|sender=3A:15:27:11:6C:BA|0.0.0.0,", + "374.5|364.0|Helvetica|8.0|0,0,0|target=FF:FF:FF:FF:FF:FF|192.168.0.24]" + ], + "images": [] + } + ] + } + }, + "Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls": { + "packetLogCards": [], + "nodes": [ + { + "name": "10.10.20.11", + "type": "Notebook", + "macs": [ + "A8:BD:04:A6:63:AD" + ] + }, + { + "name": "Switch 1", + "type": "Switch", + "macs": [] + }, + { + "name": "10.10.20.12", + "type": "Notebook", + "macs": [ + "3D:67:2A:01:2D:91" + ] + }, + { + "name": "Provider 1", + "type": "Vermittlungsrechner", + "macs": [ + "2E:E7:53:65:17:0F", + "1E:27:AE:8E:77:14", + "4B:A0:59:16:7C:2C" + ] + }, + { + "name": "", + "type": "Vermittlungsrechner", + "macs": [ + "C5:AD:0D:4F:97:06", + "E0:3F:89:38:E3:2C", + "3C:84:27:63:5A:E3", + "F5:FB:71:A8:11:59" + ] + }, + { + "name": "", + "type": "Vermittlungsrechner", + "macs": [ + "3A:DC:16:7C:AA:78", + "91:D6:EC:3F:56:B0", + "16:F2:4D:40:AA:56" + ] + }, + { + "name": "", + "type": "Vermittlungsrechner", + "macs": [ + "A2:55:52:6B:6F:27", + "27:17:86:69:32:C9", + "B3:22:50:EC:11:FB", + "63:D5:E4:BB:37:E6", + "15:DA:6A:2F:5F:3A" + ] + }, + { + "name": "", + "type": "Vermittlungsrechner", + "macs": [ + "80:6D:2A:57:59:B2", + "69:EB:EB:6E:F6:82", + "C9:5D:41:10:67:82" + ] + }, + { + "name": "", + "type": "Vermittlungsrechner", + "macs": [ + "A0:D8:AE:E8:2A:E1", + "A2:3C:B4:FB:9D:D1" + ] + }, + { + "name": "DNS (8.8.8.8)", + "type": "Rechner", + "macs": [ + "17:66:19:C9:9E:29" + ] + }, + { + "name": "webserver.de (120.130.140.80)", + "type": "Rechner", + "macs": [ + "4B:ED:F2:C7:AF:8C" + ] + }, + { + "name": "mail.gmx.de (130.100.200.25)", + "type": "Rechner", + "macs": [ + "47:AF:A1:5F:0E:C7" + ] + }, + { + "name": "mail.webmail.de (140.100.200.25)", + "type": "Rechner", + "macs": [ + "62:A4:B8:31:8D:33" + ] + }, + { + "name": "meine-schule.de (10.0.0.1)", + "type": "Rechner", + "macs": [ + "C5:39:AE:55:77:F5" + ] + }, + { + "name": "Heimrouter", + "type": "Gateway", + "macs": [ + "E4:0B:71:77:E8:25", + "F6:F2:70:B5:92:97" + ] + }, + { + "name": "192.168.1.11", + "type": "Notebook", + "macs": [ + "68:3B:FB:D6:E1:D8" + ] + }, + { + "name": "10.50.50.11", + "type": "Notebook", + "macs": [ + "EF:1A:35:6C:C2:DC" + ] + }, + { + "name": "10.50.50.14", + "type": "Notebook", + "macs": [ + "19:06:AC:C7:9D:0E" + ] + }, + { + "name": "10.50.50.13", + "type": "Notebook", + "macs": [ + "D3:51:75:D6:71:EA" + ] + }, + { + "name": "10.50.50.12", + "type": "Notebook", + "macs": [ + "E2:AC:66:8B:39:9F" + ] + }, + { + "name": "Access Point", + "type": "Switch", + "macs": [] + }, + { + "name": "Firewall", + "type": "Gateway", + "macs": [ + "95:C1:83:23:BB:4C", + "D6:AF:B6:8B:75:85" + ] + }, + { + "name": "Provider 2", + "type": "Vermittlungsrechner", + "macs": [ + "11:EE:8E:9F:31:18", + "B7:E7:AB:01:FE:F6" + ] + }, + { + "name": "Provider 2 DCHP Server", + "type": "Rechner", + "macs": [ + "55:E4:24:B2:2F:7B" + ] + }, + { + "name": "Provider 2 Switch", + "type": "Switch", + "macs": [] + } + ], + "pdf": { + "title": "Filius-Dokumentation: Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE", + "creator": "Filius (www.lernsoftware-filius.de)", + "pages": [ + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "202.5|779.0|Helvetica-Bold|18.0|30,50,120|Filius-Dokumentation:", + "38.44|752.0|Helvetica-Bold|18.0|30,50,120|Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwa", + "188.47|725.0|Helvetica-Bold|18.0|30,50,120|rding_Firewall_DHCP_DE", + "36.0|698.0|Helvetica|8.0|0,0,0|/root/mdg-admin-dashboard/filius/tools/java-", + "36.0|671.0|Helvetica|8.0|0,0,0|oracle/.upstream/beispiele/Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls", + "36.0|650.0|Helvetica-Bold|14.0|64,64,64|1. ", + "51.57|650.0|Helvetica-Bold|14.0|64,64,64|Übersicht" + ], + "images": [ + { + "x": 36.0, + "y": 190.64, + "width": 523.0, + "height": 448.86, + "pixels": [ + 1171, + 1005 + ] + } + ] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|2. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Komponenten", + "36.0|767.0|Helvetica-Bold|12.0|64,64,64|2.1. ", + "59.35|767.0|Helvetica-Bold|12.0|64,64,64|10.10.20.11", + "36.0|752.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|670.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|612.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|597.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|597.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|567.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|464.0|Helvetica-Bold|12.0|64,64,64|2.2. ", + "59.35|464.0|Helvetica-Bold|12.0|64,64,64|10.10.20.12", + "36.0|449.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|367.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|309.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|294.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|294.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|264.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|161.0|Helvetica-Bold|12.0|64,64,64|2.3. ", + "59.35|161.0|Helvetica-Bold|12.0|64,64,64|Provider 1", + "36.0|146.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|88.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|740.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|740.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|726.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|726.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|712.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|702.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|712.0|Helvetica|10.0|0,0,0|true", + "38.0|658.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|658.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|658.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|644.0|Helvetica|10.0|0,0,0|A8:BD:04:A6:63:AD", + "177.47|644.0|Helvetica|10.0|0,0,0|10.10.20.11", + "316.93|644.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|555.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|555.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|555.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|555.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|541.0|Helvetica|10.0|0,0,0|10.10.20.11", + "142.6|541.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|527.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|527.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|527.0|Helvetica|10.0|0,0,0|10.10.20.11", + "351.8|527.0|Helvetica|10.0|0,0,0|10.10.20.11", + "38.0|513.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|513.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|499.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|499.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|499.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|499.0|Helvetica|10.0|0,0,0|10.10.20.11", + "38.0|437.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|437.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|423.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|423.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|409.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|399.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|409.0|Helvetica|10.0|0,0,0|true", + "38.0|355.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|355.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|355.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|341.0|Helvetica|10.0|0,0,0|3D:67:2A:01:2D:91", + "177.47|341.0|Helvetica|10.0|0,0,0|10.10.20.12", + "316.93|341.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|252.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|252.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|252.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|252.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|238.0|Helvetica|10.0|0,0,0|10.10.20.12", + "142.6|238.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|238.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|238.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|224.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|224.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|224.0|Helvetica|10.0|0,0,0|10.10.20.12", + "351.8|224.0|Helvetica|10.0|0,0,0|10.10.20.12", + "38.0|210.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|210.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|210.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|210.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|196.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|196.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|196.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|196.0|Helvetica|10.0|0,0,0|10.10.20.12", + "38.0|134.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|120.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|76.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|76.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|76.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|62.0|Helvetica|10.0|0,0,0|2E:E7:53:65:17:0F", + "177.47|62.0|Helvetica|10.0|0,0,0|42.0.0.1", + "316.93|62.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|48.0|Helvetica|10.0|0,0,0|1E:27:AE:8E:77:14", + "177.47|48.0|Helvetica|10.0|0,0,0|6.0.0.2", + "316.93|48.0|Helvetica|10.0|0,0,0|255.255.255.0" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|762.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|617.0|Helvetica-Bold|12.0|64,64,64|2.4. ", + "36.0|602.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|544.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|444.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|271.0|Helvetica-Bold|12.0|64,64,64|2.5. ", + "36.0|256.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|198.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|112.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|794.0|Helvetica|10.0|0,0,0|4B:A0:59:16:7C:2C", + "177.47|794.0|Helvetica|10.0|0,0,0|2.0.0.1", + "316.93|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|750.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|750.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|750.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|750.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|736.0|Helvetica|10.0|0,0,0|2.0.0.1", + "142.6|736.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|736.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|736.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|722.0|Helvetica|10.0|0,0,0|6.0.0.2", + "142.6|722.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|722.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|722.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|708.0|Helvetica|10.0|0,0,0|42.0.0.1", + "142.6|708.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|708.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|708.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|694.0|Helvetica|10.0|0,0,0|2.0.0.0", + "142.6|694.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|694.0|Helvetica|10.0|0,0,0|2.0.0.1", + "351.8|694.0|Helvetica|10.0|0,0,0|2.0.0.1", + "38.0|680.0|Helvetica|10.0|0,0,0|6.0.0.0", + "142.6|680.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|680.0|Helvetica|10.0|0,0,0|6.0.0.2", + "351.8|680.0|Helvetica|10.0|0,0,0|6.0.0.2", + "38.0|666.0|Helvetica|10.0|0,0,0|42.0.0.0", + "142.6|666.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|666.0|Helvetica|10.0|0,0,0|42.0.0.1", + "351.8|666.0|Helvetica|10.0|0,0,0|42.0.0.1", + "38.0|652.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|652.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|652.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|652.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|590.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|576.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|532.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|532.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|532.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|518.0|Helvetica|10.0|0,0,0|C5:AD:0D:4F:97:06", + "177.47|518.0|Helvetica|10.0|0,0,0|6.0.0.1", + "316.93|518.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|504.0|Helvetica|10.0|0,0,0|E0:3F:89:38:E3:2C", + "177.47|504.0|Helvetica|10.0|0,0,0|11.0.0.1", + "316.93|504.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|490.0|Helvetica|10.0|0,0,0|3C:84:27:63:5A:E3", + "177.47|490.0|Helvetica|10.0|0,0,0|130.100.200.1", + "316.93|490.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|476.0|Helvetica|10.0|0,0,0|F5:FB:71:A8:11:59", + "177.47|476.0|Helvetica|10.0|0,0,0|12.0.0.1", + "316.93|476.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|432.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|432.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|432.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|432.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|418.0|Helvetica|10.0|0,0,0|12.0.0.1", + "142.6|418.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|418.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|418.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|404.0|Helvetica|10.0|0,0,0|130.100.200.1", + "142.6|404.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|404.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|404.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|390.0|Helvetica|10.0|0,0,0|11.0.0.1", + "142.6|390.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|390.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|390.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|376.0|Helvetica|10.0|0,0,0|6.0.0.1", + "142.6|376.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|376.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|376.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|362.0|Helvetica|10.0|0,0,0|12.0.0.0", + "142.6|362.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|362.0|Helvetica|10.0|0,0,0|12.0.0.1", + "351.8|362.0|Helvetica|10.0|0,0,0|12.0.0.1", + "38.0|348.0|Helvetica|10.0|0,0,0|130.100.200.0", + "142.6|348.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|348.0|Helvetica|10.0|0,0,0|130.100.200.1", + "351.8|348.0|Helvetica|10.0|0,0,0|130.100.200.1", + "38.0|334.0|Helvetica|10.0|0,0,0|11.0.0.0", + "142.6|334.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|334.0|Helvetica|10.0|0,0,0|11.0.0.1", + "351.8|334.0|Helvetica|10.0|0,0,0|11.0.0.1", + "38.0|320.0|Helvetica|10.0|0,0,0|6.0.0.0", + "142.6|320.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|320.0|Helvetica|10.0|0,0,0|6.0.0.1", + "351.8|320.0|Helvetica|10.0|0,0,0|6.0.0.1", + "38.0|306.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|306.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|306.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|306.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|244.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|230.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|186.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|186.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|186.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|172.0|Helvetica|10.0|0,0,0|3A:DC:16:7C:AA:78", + "177.47|172.0|Helvetica|10.0|0,0,0|2.0.0.2", + "316.93|172.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|158.0|Helvetica|10.0|0,0,0|91:D6:EC:3F:56:B0", + "177.47|158.0|Helvetica|10.0|0,0,0|11.0.0.2", + "316.93|158.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|144.0|Helvetica|10.0|0,0,0|16:F2:4D:40:AA:56", + "177.47|144.0|Helvetica|10.0|0,0,0|3.0.0.1", + "316.93|144.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|100.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|100.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|100.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|100.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|86.0|Helvetica|10.0|0,0,0|3.0.0.1", + "142.6|86.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|86.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|86.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|72.0|Helvetica|10.0|0,0,0|11.0.0.2", + "142.6|72.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|72.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|72.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|58.0|Helvetica|10.0|0,0,0|2.0.0.2", + "142.6|58.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|58.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|58.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|44.0|Helvetica|10.0|0,0,0|3.0.0.0", + "142.6|44.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|44.0|Helvetica|10.0|0,0,0|3.0.0.1", + "351.8|44.0|Helvetica|10.0|0,0,0|3.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|731.0|Helvetica-Bold|12.0|64,64,64|2.6. ", + "36.0|716.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|658.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|544.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|343.0|Helvetica-Bold|12.0|64,64,64|2.7. ", + "36.0|328.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|270.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|184.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|39.0|Helvetica-Bold|12.0|64,64,64|2.8. ", + "38.0|794.0|Helvetica|10.0|0,0,0|11.0.0.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|11.0.0.2", + "351.8|794.0|Helvetica|10.0|0,0,0|11.0.0.2", + "38.0|780.0|Helvetica|10.0|0,0,0|2.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|780.0|Helvetica|10.0|0,0,0|2.0.0.2", + "351.8|780.0|Helvetica|10.0|0,0,0|2.0.0.2", + "38.0|766.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|766.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|704.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|690.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|646.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|646.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|646.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|632.0|Helvetica|10.0|0,0,0|A2:55:52:6B:6F:27", + "177.47|632.0|Helvetica|10.0|0,0,0|12.0.0.2", + "316.93|632.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|618.0|Helvetica|10.0|0,0,0|27:17:86:69:32:C9", + "177.47|618.0|Helvetica|10.0|0,0,0|3.0.0.2", + "316.93|618.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|604.0|Helvetica|10.0|0,0,0|B3:22:50:EC:11:FB", + "177.47|604.0|Helvetica|10.0|0,0,0|4.0.0.1", + "316.93|604.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|590.0|Helvetica|10.0|0,0,0|63:D5:E4:BB:37:E6", + "177.47|590.0|Helvetica|10.0|0,0,0|8.0.0.1", + "316.93|590.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|576.0|Helvetica|10.0|0,0,0|15:DA:6A:2F:5F:3A", + "177.47|576.0|Helvetica|10.0|0,0,0|15.0.0.1", + "316.93|576.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|532.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|532.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|532.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|532.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|518.0|Helvetica|10.0|0,0,0|15.0.0.1", + "142.6|518.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|518.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|518.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|504.0|Helvetica|10.0|0,0,0|8.0.0.1", + "142.6|504.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|504.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|504.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|490.0|Helvetica|10.0|0,0,0|4.0.0.1", + "142.6|490.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|490.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|490.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|476.0|Helvetica|10.0|0,0,0|3.0.0.2", + "142.6|476.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|476.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|476.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|462.0|Helvetica|10.0|0,0,0|12.0.0.2", + "142.6|462.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|462.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|462.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|448.0|Helvetica|10.0|0,0,0|15.0.0.0", + "142.6|448.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|448.0|Helvetica|10.0|0,0,0|15.0.0.1", + "351.8|448.0|Helvetica|10.0|0,0,0|15.0.0.1", + "38.0|434.0|Helvetica|10.0|0,0,0|8.0.0.0", + "142.6|434.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|434.0|Helvetica|10.0|0,0,0|8.0.0.1", + "351.8|434.0|Helvetica|10.0|0,0,0|8.0.0.1", + "38.0|420.0|Helvetica|10.0|0,0,0|4.0.0.0", + "142.6|420.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|420.0|Helvetica|10.0|0,0,0|4.0.0.1", + "351.8|420.0|Helvetica|10.0|0,0,0|4.0.0.1", + "38.0|406.0|Helvetica|10.0|0,0,0|3.0.0.0", + "142.6|406.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|406.0|Helvetica|10.0|0,0,0|3.0.0.2", + "351.8|406.0|Helvetica|10.0|0,0,0|3.0.0.2", + "38.0|392.0|Helvetica|10.0|0,0,0|12.0.0.0", + "142.6|392.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|392.0|Helvetica|10.0|0,0,0|12.0.0.2", + "351.8|392.0|Helvetica|10.0|0,0,0|12.0.0.2", + "38.0|378.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|378.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|378.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|378.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|316.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|302.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|258.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|258.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|258.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|244.0|Helvetica|10.0|0,0,0|80:6D:2A:57:59:B2", + "177.47|244.0|Helvetica|10.0|0,0,0|4.0.0.2", + "316.93|244.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|230.0|Helvetica|10.0|0,0,0|69:EB:EB:6E:F6:82", + "177.47|230.0|Helvetica|10.0|0,0,0|5.0.0.1", + "316.93|230.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|216.0|Helvetica|10.0|0,0,0|C9:5D:41:10:67:82", + "177.47|216.0|Helvetica|10.0|0,0,0|120.130.140.1", + "316.93|216.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|172.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|172.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|172.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|172.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|158.0|Helvetica|10.0|0,0,0|120.130.140.1", + "142.6|158.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|158.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|158.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|144.0|Helvetica|10.0|0,0,0|5.0.0.1", + "142.6|144.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|144.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|144.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|130.0|Helvetica|10.0|0,0,0|4.0.0.2", + "142.6|130.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|130.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|130.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|116.0|Helvetica|10.0|0,0,0|120.130.140.0", + "142.6|116.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|116.0|Helvetica|10.0|0,0,0|120.130.140.1", + "351.8|116.0|Helvetica|10.0|0,0,0|120.130.140.1", + "38.0|102.0|Helvetica|10.0|0,0,0|5.0.0.0", + "142.6|102.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|102.0|Helvetica|10.0|0,0,0|5.0.0.1", + "351.8|102.0|Helvetica|10.0|0,0,0|5.0.0.1", + "38.0|88.0|Helvetica|10.0|0,0,0|4.0.0.0", + "142.6|88.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|88.0|Helvetica|10.0|0,0,0|4.0.0.2", + "351.8|88.0|Helvetica|10.0|0,0,0|4.0.0.2", + "38.0|74.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|74.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|74.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|74.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|733.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|661.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|544.0|Helvetica-Bold|12.0|64,64,64|2.9. ", + "59.35|544.0|Helvetica-Bold|12.0|64,64,64|DNS (8.8.8.8)", + "36.0|529.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|447.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|389.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|374.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|374.0|Helvetica|10.0|0,0,0|DNS-Server, Text-Editor, Befehlszeile", + "36.0|344.0|Helvetica-Bold|10.0|64,64,64|Konfiguration DNS-Server", + "36.0|216.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|113.0|Helvetica-Bold|12.0|64,64,64|2.10. ", + "66.02|113.0|Helvetica-Bold|12.0|64,64,64|webserver.de (120.130.140.80)", + "36.0|98.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|779.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|765.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|721.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|721.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|721.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|707.0|Helvetica|10.0|0,0,0|A0:D8:AE:E8:2A:E1", + "177.47|707.0|Helvetica|10.0|0,0,0|5.0.0.2", + "316.93|707.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|693.0|Helvetica|10.0|0,0,0|A2:3C:B4:FB:9D:D1", + "177.47|693.0|Helvetica|10.0|0,0,0|140.100.200.1", + "316.93|693.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|649.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|649.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|649.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|649.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|635.0|Helvetica|10.0|0,0,0|140.100.200.1", + "142.6|635.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|635.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|635.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|621.0|Helvetica|10.0|0,0,0|5.0.0.2", + "142.6|621.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|621.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|621.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|607.0|Helvetica|10.0|0,0,0|140.100.200.0", + "142.6|607.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|607.0|Helvetica|10.0|0,0,0|140.100.200.1", + "351.8|607.0|Helvetica|10.0|0,0,0|140.100.200.1", + "38.0|593.0|Helvetica|10.0|0,0,0|5.0.0.0", + "142.6|593.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|593.0|Helvetica|10.0|0,0,0|5.0.0.2", + "351.8|593.0|Helvetica|10.0|0,0,0|5.0.0.2", + "38.0|579.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|579.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|579.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|579.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|517.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|517.0|Helvetica|10.0|0,0,0|8.0.0.1", + "38.0|503.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|489.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|479.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|489.0|Helvetica|10.0|0,0,0|false", + "38.0|435.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|435.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|435.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|421.0|Helvetica|10.0|0,0,0|17:66:19:C9:9E:29", + "177.47|421.0|Helvetica|10.0|0,0,0|8.8.8.8", + "316.93|421.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|332.0|Helvetica-Bold|10.0|0,0,0|Domainname", + "188.62|332.0|Helvetica-Bold|10.0|0,0,0|Typ", + "238.83|332.0|Helvetica-Bold|10.0|0,0,0|Daten", + "38.0|318.0|Helvetica|10.0|0,0,0|webserver.de.", + "188.62|318.0|Helvetica|10.0|0,0,0|A", + "238.83|318.0|Helvetica|10.0|0,0,0|120.130.140.80", + "38.0|304.0|Helvetica|10.0|0,0,0|gmx.de.", + "188.62|304.0|Helvetica|10.0|0,0,0|MX", + "238.83|304.0|Helvetica|10.0|0,0,0|mail.gmx.de.", + "38.0|290.0|Helvetica|10.0|0,0,0|mail.gmx.de.", + "188.62|290.0|Helvetica|10.0|0,0,0|A", + "238.83|290.0|Helvetica|10.0|0,0,0|130.100.200.25", + "38.0|276.0|Helvetica|10.0|0,0,0|mail.webmail.de.", + "188.62|276.0|Helvetica|10.0|0,0,0|A", + "238.83|276.0|Helvetica|10.0|0,0,0|140.100.200.25", + "38.0|262.0|Helvetica|10.0|0,0,0|webmail.de.", + "188.62|262.0|Helvetica|10.0|0,0,0|MX", + "238.83|262.0|Helvetica|10.0|0,0,0|mail.webmail.de.", + "38.0|248.0|Helvetica|10.0|0,0,0|meine-schule.de.", + "188.62|248.0|Helvetica|10.0|0,0,0|A", + "238.83|248.0|Helvetica|10.0|0,0,0|42.0.0.10", + "38.0|204.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|204.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|204.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|204.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|190.0|Helvetica|10.0|0,0,0|8.8.8.8", + "142.6|190.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|190.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|190.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|176.0|Helvetica|10.0|0,0,0|8.0.0.0", + "142.6|176.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|176.0|Helvetica|10.0|0,0,0|8.8.8.8", + "351.8|176.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|162.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|162.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|162.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|162.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|148.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|148.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|148.0|Helvetica|10.0|0,0,0|8.0.0.1", + "351.8|148.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|86.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|86.0|Helvetica|10.0|0,0,0|120.130.140.1", + "38.0|72.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|72.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|58.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|48.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|58.0|Helvetica|10.0|0,0,0|false" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|776.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|718.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|703.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|703.0|Helvetica|10.0|0,0,0|Webserver, Text-Editor, Befehlszeile", + "36.0|673.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|570.0|Helvetica-Bold|12.0|64,64,64|2.11. ", + "66.02|570.0|Helvetica-Bold|12.0|64,64,64|mail.gmx.de (130.100.200.25)", + "36.0|555.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|473.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|415.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|400.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|400.0|Helvetica|10.0|0,0,0|E-Mail-Server", + "36.0|370.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|267.0|Helvetica-Bold|12.0|64,64,64|2.12. ", + "66.02|267.0|Helvetica-Bold|12.0|64,64,64|mail.webmail.de (140.100.200.25)", + "36.0|252.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|170.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|112.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|97.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|97.0|Helvetica|10.0|0,0,0|E-Mail-Server", + "36.0|67.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|764.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|764.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|764.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|750.0|Helvetica|10.0|0,0,0|4B:ED:F2:C7:AF:8C", + "177.47|750.0|Helvetica|10.0|0,0,0|120.130.140.80", + "316.93|750.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|661.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|661.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|661.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|661.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|647.0|Helvetica|10.0|0,0,0|120.130.140.80", + "142.6|647.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|647.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|647.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|633.0|Helvetica|10.0|0,0,0|120.130.140.0", + "142.6|633.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|633.0|Helvetica|10.0|0,0,0|120.130.140.80", + "351.8|633.0|Helvetica|10.0|0,0,0|120.130.140.80", + "38.0|619.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|619.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|619.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|619.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|605.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|605.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|605.0|Helvetica|10.0|0,0,0|120.130.140.1", + "351.8|605.0|Helvetica|10.0|0,0,0|120.130.140.80", + "38.0|543.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|543.0|Helvetica|10.0|0,0,0|130.100.200.1", + "38.0|529.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|529.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|515.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|505.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|515.0|Helvetica|10.0|0,0,0|false", + "38.0|461.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|461.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|461.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|447.0|Helvetica|10.0|0,0,0|47:AF:A1:5F:0E:C7", + "177.47|447.0|Helvetica|10.0|0,0,0|130.100.200.25", + "316.93|447.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|358.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|358.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|358.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|358.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|344.0|Helvetica|10.0|0,0,0|130.100.200.25", + "142.6|344.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|344.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|344.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|330.0|Helvetica|10.0|0,0,0|130.100.200.0", + "142.6|330.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|330.0|Helvetica|10.0|0,0,0|130.100.200.25", + "351.8|330.0|Helvetica|10.0|0,0,0|130.100.200.25", + "38.0|316.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|316.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|316.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|316.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|302.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|302.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|302.0|Helvetica|10.0|0,0,0|130.100.200.1", + "351.8|302.0|Helvetica|10.0|0,0,0|130.100.200.25", + "38.0|240.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|240.0|Helvetica|10.0|0,0,0|140.100.200.1", + "38.0|226.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|226.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|212.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|202.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|212.0|Helvetica|10.0|0,0,0|false", + "38.0|158.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|158.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|158.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|144.0|Helvetica|10.0|0,0,0|62:A4:B8:31:8D:33", + "177.47|144.0|Helvetica|10.0|0,0,0|140.100.200.25", + "316.93|144.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|55.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|55.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|55.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|55.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|41.0|Helvetica|10.0|0,0,0|140.100.200.25", + "142.6|41.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|41.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|41.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|731.0|Helvetica-Bold|12.0|64,64,64|2.13. ", + "66.02|731.0|Helvetica-Bold|12.0|64,64,64|meine-schule.de (10.0.0.1)", + "36.0|716.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|634.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|576.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|561.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|561.0|Helvetica|10.0|0,0,0|Webserver, DNS-Server, Text-Editor, Befehlszeile", + "36.0|531.0|Helvetica-Bold|10.0|64,64,64|Konfiguration DNS-Server", + "36.0|473.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|370.0|Helvetica-Bold|12.0|64,64,64|2.14. ", + "66.02|370.0|Helvetica-Bold|12.0|64,64,64|Heimrouter", + "36.0|355.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|297.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|225.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|94.0|Helvetica-Bold|12.0|64,64,64|2.15. ", + "66.02|94.0|Helvetica-Bold|12.0|64,64,64|192.168.1.11", + "36.0|79.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|794.0|Helvetica|10.0|0,0,0|140.100.200.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|140.100.200.25", + "351.8|794.0|Helvetica|10.0|0,0,0|140.100.200.25", + "38.0|780.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|140.100.200.1", + "351.8|766.0|Helvetica|10.0|0,0,0|140.100.200.25", + "38.0|704.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|704.0|Helvetica|10.0|0,0,0|10.0.0.2", + "38.0|690.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|690.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|676.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|666.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|676.0|Helvetica|10.0|0,0,0|false", + "38.0|622.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|622.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|622.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|608.0|Helvetica|10.0|0,0,0|C5:39:AE:55:77:F5", + "177.47|608.0|Helvetica|10.0|0,0,0|10.0.0.1", + "316.93|608.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|519.0|Helvetica-Bold|10.0|0,0,0|Domainname", + "188.62|519.0|Helvetica-Bold|10.0|0,0,0|Typ", + "238.83|519.0|Helvetica-Bold|10.0|0,0,0|Daten", + "38.0|505.0|Helvetica|10.0|0,0,0|meine-schule.de.", + "188.62|505.0|Helvetica|10.0|0,0,0|A", + "238.83|505.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|461.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|461.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|461.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|461.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|447.0|Helvetica|10.0|0,0,0|10.0.0.1", + "142.6|447.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|447.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|447.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|433.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|433.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|433.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|433.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|419.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|419.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|419.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|419.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|405.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|405.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|405.0|Helvetica|10.0|0,0,0|10.0.0.2", + "351.8|405.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|343.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|343.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|329.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|329.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|285.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|285.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|285.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|271.0|Helvetica|10.0|0,0,0|E4:0B:71:77:E8:25", + "177.47|271.0|Helvetica|10.0|0,0,0|43.0.0.11", + "316.93|271.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|257.0|Helvetica|10.0|0,0,0|F6:F2:70:B5:92:97", + "177.47|257.0|Helvetica|10.0|0,0,0|192.168.1.1", + "316.93|257.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|213.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|213.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|213.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|213.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|199.0|Helvetica|10.0|0,0,0|192.168.1.1", + "142.6|199.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|199.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|199.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|185.0|Helvetica|10.0|0,0,0|43.0.0.11", + "142.6|185.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|185.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|185.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|171.0|Helvetica|10.0|0,0,0|192.168.1.0", + "142.6|171.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|171.0|Helvetica|10.0|0,0,0|192.168.1.1", + "351.8|171.0|Helvetica|10.0|0,0,0|192.168.1.1", + "38.0|157.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|157.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|157.0|Helvetica|10.0|0,0,0|43.0.0.11", + "351.8|157.0|Helvetica|10.0|0,0,0|43.0.0.11", + "38.0|143.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|143.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|143.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|143.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|129.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|129.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|129.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|129.0|Helvetica|10.0|0,0,0|43.0.0.11", + "38.0|67.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|67.0|Helvetica|10.0|0,0,0|192.168.1.1", + "38.0|53.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|53.0|Helvetica|10.0|0,0,0|8.8.8.8" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|752.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|694.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|679.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|679.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|649.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|546.0|Helvetica-Bold|12.0|64,64,64|2.16. ", + "66.02|546.0|Helvetica-Bold|12.0|64,64,64|10.50.50.11", + "36.0|531.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|449.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|391.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|376.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|376.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|346.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|243.0|Helvetica-Bold|12.0|64,64,64|2.17. ", + "66.02|243.0|Helvetica-Bold|12.0|64,64,64|10.50.50.14", + "36.0|228.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|146.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|88.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|73.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|73.0|Helvetica|10.0|0,0,0|-", + "36.0|43.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|794.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|784.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|794.0|Helvetica|10.0|0,0,0|true", + "38.0|740.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|740.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|740.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|726.0|Helvetica|10.0|0,0,0|68:3B:FB:D6:E1:D8", + "177.47|726.0|Helvetica|10.0|0,0,0|192.168.1.11", + "316.93|726.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|637.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|637.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|637.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|637.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|623.0|Helvetica|10.0|0,0,0|192.168.1.11", + "142.6|623.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|623.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|623.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|609.0|Helvetica|10.0|0,0,0|192.168.1.0", + "142.6|609.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|609.0|Helvetica|10.0|0,0,0|192.168.1.11", + "351.8|609.0|Helvetica|10.0|0,0,0|192.168.1.11", + "38.0|595.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|595.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|595.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|595.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|581.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|581.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|581.0|Helvetica|10.0|0,0,0|192.168.1.1", + "351.8|581.0|Helvetica|10.0|0,0,0|192.168.1.11", + "38.0|519.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|519.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|505.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|505.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|491.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|481.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|491.0|Helvetica|10.0|0,0,0|true", + "38.0|437.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|437.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|437.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|423.0|Helvetica|10.0|0,0,0|EF:1A:35:6C:C2:DC", + "177.47|423.0|Helvetica|10.0|0,0,0|10.50.50.11", + "316.93|423.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|334.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|334.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|334.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|334.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|320.0|Helvetica|10.0|0,0,0|10.50.50.11", + "142.6|320.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|320.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|320.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|306.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|306.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|306.0|Helvetica|10.0|0,0,0|10.50.50.11", + "351.8|306.0|Helvetica|10.0|0,0,0|10.50.50.11", + "38.0|292.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|292.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|292.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|292.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|278.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|278.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|278.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|278.0|Helvetica|10.0|0,0,0|10.50.50.11", + "38.0|216.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|216.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|202.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|202.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|188.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|178.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|188.0|Helvetica|10.0|0,0,0|true", + "38.0|134.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|134.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|134.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|120.0|Helvetica|10.0|0,0,0|19:06:AC:C7:9D:0E", + "177.47|120.0|Helvetica|10.0|0,0,0|10.50.50.14", + "316.93|120.0|Helvetica|10.0|0,0,0|255.0.0.0" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|703.0|Helvetica-Bold|12.0|64,64,64|2.18. ", + "66.02|703.0|Helvetica-Bold|12.0|64,64,64|10.50.50.13", + "36.0|688.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|606.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|548.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|533.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|533.0|Helvetica|10.0|0,0,0|-", + "36.0|503.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|400.0|Helvetica-Bold|12.0|64,64,64|2.19. ", + "66.02|400.0|Helvetica-Bold|12.0|64,64,64|10.50.50.12", + "36.0|385.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|303.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|245.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|230.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|230.0|Helvetica|10.0|0,0,0|Befehlszeile, Webbrowser", + "36.0|200.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|97.0|Helvetica-Bold|12.0|64,64,64|2.20. ", + "66.02|97.0|Helvetica-Bold|12.0|64,64,64|Firewall", + "36.0|82.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|794.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|794.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|794.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|794.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|780.0|Helvetica|10.0|0,0,0|10.50.50.14", + "142.6|780.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|10.50.50.14", + "351.8|766.0|Helvetica|10.0|0,0,0|10.50.50.14", + "38.0|752.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|752.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|752.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|752.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|738.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|738.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|738.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|738.0|Helvetica|10.0|0,0,0|10.50.50.14", + "38.0|676.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|676.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|662.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|662.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|648.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|638.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|648.0|Helvetica|10.0|0,0,0|true", + "38.0|594.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|594.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|594.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|580.0|Helvetica|10.0|0,0,0|D3:51:75:D6:71:EA", + "177.47|580.0|Helvetica|10.0|0,0,0|10.50.50.13", + "316.93|580.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|491.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|491.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|491.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|491.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|477.0|Helvetica|10.0|0,0,0|10.50.50.13", + "142.6|477.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|477.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|477.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|463.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|463.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|463.0|Helvetica|10.0|0,0,0|10.50.50.13", + "351.8|463.0|Helvetica|10.0|0,0,0|10.50.50.13", + "38.0|449.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|449.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|449.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|449.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|435.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|435.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|435.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|435.0|Helvetica|10.0|0,0,0|10.50.50.13", + "38.0|373.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|373.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|359.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|359.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|345.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|335.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|345.0|Helvetica|10.0|0,0,0|true", + "38.0|291.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|291.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|291.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|277.0|Helvetica|10.0|0,0,0|E2:AC:66:8B:39:9F", + "177.47|277.0|Helvetica|10.0|0,0,0|10.50.50.12", + "316.93|277.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|188.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|188.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|188.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|188.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|174.0|Helvetica|10.0|0,0,0|10.50.50.12", + "142.6|174.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|174.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|174.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|160.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|160.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|160.0|Helvetica|10.0|0,0,0|10.50.50.12", + "351.8|160.0|Helvetica|10.0|0,0,0|10.50.50.12", + "38.0|146.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|146.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|146.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|146.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|132.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|132.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|132.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|132.0|Helvetica|10.0|0,0,0|10.50.50.12", + "38.0|70.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|70.0|Helvetica|10.0|0,0,0|42.0.0.1", + "38.0|56.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|719.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|591.0|Helvetica-Bold|10.0|64,64,64|Portfreigaben", + "36.0|530.0|Helvetica-Bold|12.0|64,64,64|2.21. ", + "66.02|530.0|Helvetica-Bold|12.0|64,64,64|Provider 2", + "36.0|515.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|457.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|385.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "36.0|268.0|Helvetica-Bold|12.0|64,64,64|2.22. ", + "66.02|268.0|Helvetica-Bold|12.0|64,64,64|Provider 2 DCHP Server", + "36.0|253.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "36.0|171.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "36.0|113.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|98.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|98.0|Helvetica|10.0|0,0,0|-", + "36.0|68.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|779.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|779.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|779.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|765.0|Helvetica|10.0|0,0,0|95:C1:83:23:BB:4C", + "177.47|765.0|Helvetica|10.0|0,0,0|42.0.0.10", + "316.93|765.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|751.0|Helvetica|10.0|0,0,0|D6:AF:B6:8B:75:85", + "177.47|751.0|Helvetica|10.0|0,0,0|10.0.0.2", + "316.93|751.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|707.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|707.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|707.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|707.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|693.0|Helvetica|10.0|0,0,0|10.0.0.2", + "142.6|693.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|693.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|693.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|679.0|Helvetica|10.0|0,0,0|42.0.0.10", + "142.6|679.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|679.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|679.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|665.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|665.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|665.0|Helvetica|10.0|0,0,0|10.0.0.2", + "351.8|665.0|Helvetica|10.0|0,0,0|10.0.0.2", + "38.0|651.0|Helvetica|10.0|0,0,0|42.0.0.0", + "142.6|651.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|651.0|Helvetica|10.0|0,0,0|42.0.0.10", + "351.8|651.0|Helvetica|10.0|0,0,0|42.0.0.10", + "38.0|637.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|637.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|637.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|637.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|623.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|623.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|623.0|Helvetica|10.0|0,0,0|42.0.0.1", + "351.8|623.0|Helvetica|10.0|0,0,0|42.0.0.10", + "38.0|579.0|Helvetica-Bold|10.0|0,0,0|Protokoll", + "142.6|579.0|Helvetica-Bold|10.0|0,0,0|Portfreigabe", + "247.2|579.0|Helvetica-Bold|10.0|0,0,0|LAN-Adresse", + "351.8|579.0|Helvetica-Bold|10.0|0,0,0|LAN-Port", + "38.0|565.0|Helvetica|10.0|0,0,0|TCP", + "142.6|565.0|Helvetica|10.0|0,0,0|80", + "247.2|565.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|565.0|Helvetica|10.0|0,0,0|80", + "38.0|503.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|489.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|445.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|445.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|445.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|431.0|Helvetica|10.0|0,0,0|11:EE:8E:9F:31:18", + "177.47|431.0|Helvetica|10.0|0,0,0|43.0.0.1", + "316.93|431.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|417.0|Helvetica|10.0|0,0,0|B7:E7:AB:01:FE:F6", + "177.47|417.0|Helvetica|10.0|0,0,0|15.0.0.2", + "316.93|417.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|373.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|373.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|373.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|373.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|359.0|Helvetica|10.0|0,0,0|15.0.0.2", + "142.6|359.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|359.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|359.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|345.0|Helvetica|10.0|0,0,0|43.0.0.1", + "142.6|345.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|345.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|345.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|331.0|Helvetica|10.0|0,0,0|15.0.0.0", + "142.6|331.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|331.0|Helvetica|10.0|0,0,0|15.0.0.2", + "351.8|331.0|Helvetica|10.0|0,0,0|15.0.0.2", + "38.0|317.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|317.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|317.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|317.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|303.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|303.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|303.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|303.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|241.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|241.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|227.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|227.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|213.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|203.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|213.0|Helvetica|10.0|0,0,0|false", + "38.0|159.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|159.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|159.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|145.0|Helvetica|10.0|0,0,0|55:E4:24:B2:2F:7B", + "177.47|145.0|Helvetica|10.0|0,0,0|43.0.0.2", + "316.93|145.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|56.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|56.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|56.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|56.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|42.0|Helvetica|10.0|0,0,0|43.0.0.2", + "142.6|42.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|42.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|42.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|43.0.0.2", + "351.8|794.0|Helvetica|10.0|0,0,0|43.0.0.2", + "38.0|780.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|766.0|Helvetica|10.0|0,0,0|43.0.0.2" + ], + "images": [] + } + ] + } + }, + "documentation.fls": { + "packetLogCards": [], + "nodes": [], + "pdf": { + "title": "Filius-Dokumentation: documentation", + "creator": "Filius (www.lernsoftware-filius.de)", + "pages": [ + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "135.49|779.0|Helvetica-Bold|18.0|30,50,120|Filius-Dokumentation: documentation", + "36.0|752.0|Helvetica|8.0|0,0,0|../../packages/doc/test/fixtures/documentation.fls", + "36.0|731.0|Helvetica-Bold|14.0|64,64,64|1. ", + "51.57|731.0|Helvetica-Bold|14.0|64,64,64|Übersicht" + ], + "images": [ + { + "x": 36.0, + "y": 443.31, + "width": 523.0, + "height": 277.19, + "pixels": [ + 500, + 265 + ] + } + ] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|2. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Komponenten" + ], + "images": [] + } + ] + } + } + }, + "empty": { + "packetLogCards": [], + "nodes": [], + "pdf": { + "title": "Filius-Dokumentation", + "creator": "Filius (www.lernsoftware-filius.de)", + "pages": [ + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "205.49|779.0|Helvetica-Bold|18.0|30,50,120|Filius-Dokumentation", + "36.0|731.0|Helvetica-Bold|14.0|64,64,64|1. ", + "51.57|731.0|Helvetica-Bold|14.0|64,64,64|Übersicht" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [], + "images": [ + { + "x": 36.0, + "y": -119.75, + "width": 523.0, + "height": 915.25, + "pixels": [ + 20, + 35 + ] + } + ] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|2. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Komponenten" + ], + "images": [] + } + ] + } + } +} diff --git a/packages/editor/test/report.ours.java.json b/packages/editor/test/report.ours.java.json new file mode 100644 index 0000000..52d81f8 --- /dev/null +++ b/packages/editor/test/report.ours.java.json @@ -0,0 +1,1179 @@ +{ + "report-ours.pdf": { + "title": "Filius-Dokumentation: Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE", + "creator": "Filius (www.lernsoftware-filius.de)", + "pages": [ + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "202.5|779.0|Helvetica-Bold|18.0|30,50,120|Filius-Dokumentation:", + "38.44|752.0|Helvetica-Bold|18.0|30,50,120|Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwa", + "188.47|725.0|Helvetica-Bold|18.0|30,50,120|rding_Firewall_DHCP_DE", + "36.0|698.0|Helvetica|8.0|0,0,0|Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls", + "36.0|677.0|Helvetica-Bold|14.0|64,64,64|1. ", + "51.57|677.0|Helvetica-Bold|14.0|64,64,64|Übersicht" + ], + "images": [ + { + "x": 36.0, + "y": 143.5, + "width": 523.0, + "height": 523.0, + "pixels": [ + 40, + 40 + ] + } + ] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|2. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Komponenten", + "36.0|767.0|Helvetica-Bold|12.0|64,64,64|2.1. ", + "59.35|767.0|Helvetica-Bold|12.0|64,64,64|10.10.20.11", + "36.0|752.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|740.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|740.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|726.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|726.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|712.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|702.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|712.0|Helvetica|10.0|0,0,0|Ja", + "36.0|670.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|658.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|658.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|658.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|644.0|Helvetica|10.0|0,0,0|A8:BD:04:A6:63:AD", + "177.47|644.0|Helvetica|10.0|0,0,0|10.10.20.11", + "316.93|644.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|612.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|597.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|597.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|567.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|555.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|555.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|555.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|555.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|541.0|Helvetica|10.0|0,0,0|10.10.20.11", + "142.6|541.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|541.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|527.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|527.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|527.0|Helvetica|10.0|0,0,0|10.10.20.11", + "351.8|527.0|Helvetica|10.0|0,0,0|10.10.20.11", + "38.0|513.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|513.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|513.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|499.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|499.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|499.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|499.0|Helvetica|10.0|0,0,0|10.10.20.11", + "36.0|464.0|Helvetica-Bold|12.0|64,64,64|2.2. ", + "59.35|464.0|Helvetica-Bold|12.0|64,64,64|10.10.20.12", + "36.0|449.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|437.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|437.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|423.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|423.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|409.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|399.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|409.0|Helvetica|10.0|0,0,0|Ja", + "36.0|367.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|355.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|355.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|355.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|341.0|Helvetica|10.0|0,0,0|3D:67:2A:01:2D:91", + "177.47|341.0|Helvetica|10.0|0,0,0|10.10.20.12", + "316.93|341.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|309.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|294.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|294.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|264.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|252.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|252.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|252.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|252.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|238.0|Helvetica|10.0|0,0,0|10.10.20.12", + "142.6|238.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|238.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|238.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|224.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|224.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|224.0|Helvetica|10.0|0,0,0|10.10.20.12", + "351.8|224.0|Helvetica|10.0|0,0,0|10.10.20.12", + "38.0|210.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|210.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|210.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|210.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|196.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|196.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|196.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|196.0|Helvetica|10.0|0,0,0|10.10.20.12", + "36.0|161.0|Helvetica-Bold|12.0|64,64,64|2.3. ", + "59.35|161.0|Helvetica-Bold|12.0|64,64,64|Provider 1", + "36.0|146.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|134.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|120.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|88.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|76.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|76.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|76.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|62.0|Helvetica|10.0|0,0,0|2E:E7:53:65:17:0F", + "177.47|62.0|Helvetica|10.0|0,0,0|42.0.0.1", + "316.93|62.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|48.0|Helvetica|10.0|0,0,0|1E:27:AE:8E:77:14", + "177.47|48.0|Helvetica|10.0|0,0,0|6.0.0.2", + "316.93|48.0|Helvetica|10.0|0,0,0|255.255.255.0" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica|10.0|0,0,0|4B:A0:59:16:7C:2C", + "177.47|794.0|Helvetica|10.0|0,0,0|2.0.0.1", + "316.93|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|762.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|750.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|750.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|750.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|750.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|736.0|Helvetica|10.0|0,0,0|2.0.0.1", + "142.6|736.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|736.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|736.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|722.0|Helvetica|10.0|0,0,0|6.0.0.2", + "142.6|722.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|722.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|722.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|708.0|Helvetica|10.0|0,0,0|42.0.0.1", + "142.6|708.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|708.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|708.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|694.0|Helvetica|10.0|0,0,0|2.0.0.0", + "142.6|694.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|694.0|Helvetica|10.0|0,0,0|2.0.0.1", + "351.8|694.0|Helvetica|10.0|0,0,0|2.0.0.1", + "38.0|680.0|Helvetica|10.0|0,0,0|6.0.0.0", + "142.6|680.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|680.0|Helvetica|10.0|0,0,0|6.0.0.2", + "351.8|680.0|Helvetica|10.0|0,0,0|6.0.0.2", + "38.0|666.0|Helvetica|10.0|0,0,0|42.0.0.0", + "142.6|666.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|666.0|Helvetica|10.0|0,0,0|42.0.0.1", + "351.8|666.0|Helvetica|10.0|0,0,0|42.0.0.1", + "38.0|652.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|652.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|652.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|652.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|617.0|Helvetica-Bold|12.0|64,64,64|2.4.", + "36.0|602.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|590.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|576.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|544.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|532.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|532.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|532.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|518.0|Helvetica|10.0|0,0,0|C5:AD:0D:4F:97:06", + "177.47|518.0|Helvetica|10.0|0,0,0|6.0.0.1", + "316.93|518.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|504.0|Helvetica|10.0|0,0,0|E0:3F:89:38:E3:2C", + "177.47|504.0|Helvetica|10.0|0,0,0|11.0.0.1", + "316.93|504.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|490.0|Helvetica|10.0|0,0,0|3C:84:27:63:5A:E3", + "177.47|490.0|Helvetica|10.0|0,0,0|130.100.200.1", + "316.93|490.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|476.0|Helvetica|10.0|0,0,0|F5:FB:71:A8:11:59", + "177.47|476.0|Helvetica|10.0|0,0,0|12.0.0.1", + "316.93|476.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|444.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|432.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|432.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|432.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|432.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|418.0|Helvetica|10.0|0,0,0|12.0.0.1", + "142.6|418.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|418.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|418.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|404.0|Helvetica|10.0|0,0,0|130.100.200.1", + "142.6|404.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|404.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|404.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|390.0|Helvetica|10.0|0,0,0|11.0.0.1", + "142.6|390.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|390.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|390.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|376.0|Helvetica|10.0|0,0,0|6.0.0.1", + "142.6|376.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|376.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|376.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|362.0|Helvetica|10.0|0,0,0|12.0.0.0", + "142.6|362.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|362.0|Helvetica|10.0|0,0,0|12.0.0.1", + "351.8|362.0|Helvetica|10.0|0,0,0|12.0.0.1", + "38.0|348.0|Helvetica|10.0|0,0,0|130.100.200.0", + "142.6|348.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|348.0|Helvetica|10.0|0,0,0|130.100.200.1", + "351.8|348.0|Helvetica|10.0|0,0,0|130.100.200.1", + "38.0|334.0|Helvetica|10.0|0,0,0|11.0.0.0", + "142.6|334.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|334.0|Helvetica|10.0|0,0,0|11.0.0.1", + "351.8|334.0|Helvetica|10.0|0,0,0|11.0.0.1", + "38.0|320.0|Helvetica|10.0|0,0,0|6.0.0.0", + "142.6|320.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|320.0|Helvetica|10.0|0,0,0|6.0.0.1", + "351.8|320.0|Helvetica|10.0|0,0,0|6.0.0.1", + "38.0|306.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|306.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|306.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|306.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|271.0|Helvetica-Bold|12.0|64,64,64|2.5.", + "36.0|256.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|244.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|230.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|198.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|186.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|186.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|186.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|172.0|Helvetica|10.0|0,0,0|3A:DC:16:7C:AA:78", + "177.47|172.0|Helvetica|10.0|0,0,0|2.0.0.2", + "316.93|172.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|158.0|Helvetica|10.0|0,0,0|91:D6:EC:3F:56:B0", + "177.47|158.0|Helvetica|10.0|0,0,0|11.0.0.2", + "316.93|158.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|144.0|Helvetica|10.0|0,0,0|16:F2:4D:40:AA:56", + "177.47|144.0|Helvetica|10.0|0,0,0|3.0.0.1", + "316.93|144.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|112.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|100.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|100.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|100.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|100.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|86.0|Helvetica|10.0|0,0,0|3.0.0.1", + "142.6|86.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|86.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|86.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|72.0|Helvetica|10.0|0,0,0|11.0.0.2", + "142.6|72.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|72.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|72.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|58.0|Helvetica|10.0|0,0,0|2.0.0.2", + "142.6|58.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|58.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|58.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|44.0|Helvetica|10.0|0,0,0|3.0.0.0", + "142.6|44.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|44.0|Helvetica|10.0|0,0,0|3.0.0.1", + "351.8|44.0|Helvetica|10.0|0,0,0|3.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica|10.0|0,0,0|11.0.0.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|11.0.0.2", + "351.8|794.0|Helvetica|10.0|0,0,0|11.0.0.2", + "38.0|780.0|Helvetica|10.0|0,0,0|2.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|780.0|Helvetica|10.0|0,0,0|2.0.0.2", + "351.8|780.0|Helvetica|10.0|0,0,0|2.0.0.2", + "38.0|766.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|766.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|731.0|Helvetica-Bold|12.0|64,64,64|2.6.", + "36.0|716.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|704.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|690.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|658.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|646.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|646.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|646.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|632.0|Helvetica|10.0|0,0,0|A2:55:52:6B:6F:27", + "177.47|632.0|Helvetica|10.0|0,0,0|12.0.0.2", + "316.93|632.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|618.0|Helvetica|10.0|0,0,0|27:17:86:69:32:C9", + "177.47|618.0|Helvetica|10.0|0,0,0|3.0.0.2", + "316.93|618.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|604.0|Helvetica|10.0|0,0,0|B3:22:50:EC:11:FB", + "177.47|604.0|Helvetica|10.0|0,0,0|4.0.0.1", + "316.93|604.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|590.0|Helvetica|10.0|0,0,0|63:D5:E4:BB:37:E6", + "177.47|590.0|Helvetica|10.0|0,0,0|8.0.0.1", + "316.93|590.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|576.0|Helvetica|10.0|0,0,0|15:DA:6A:2F:5F:3A", + "177.47|576.0|Helvetica|10.0|0,0,0|15.0.0.1", + "316.93|576.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|544.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|532.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|532.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|532.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|532.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|518.0|Helvetica|10.0|0,0,0|15.0.0.1", + "142.6|518.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|518.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|518.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|504.0|Helvetica|10.0|0,0,0|8.0.0.1", + "142.6|504.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|504.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|504.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|490.0|Helvetica|10.0|0,0,0|4.0.0.1", + "142.6|490.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|490.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|490.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|476.0|Helvetica|10.0|0,0,0|3.0.0.2", + "142.6|476.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|476.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|476.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|462.0|Helvetica|10.0|0,0,0|12.0.0.2", + "142.6|462.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|462.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|462.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|448.0|Helvetica|10.0|0,0,0|15.0.0.0", + "142.6|448.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|448.0|Helvetica|10.0|0,0,0|15.0.0.1", + "351.8|448.0|Helvetica|10.0|0,0,0|15.0.0.1", + "38.0|434.0|Helvetica|10.0|0,0,0|8.0.0.0", + "142.6|434.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|434.0|Helvetica|10.0|0,0,0|8.0.0.1", + "351.8|434.0|Helvetica|10.0|0,0,0|8.0.0.1", + "38.0|420.0|Helvetica|10.0|0,0,0|4.0.0.0", + "142.6|420.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|420.0|Helvetica|10.0|0,0,0|4.0.0.1", + "351.8|420.0|Helvetica|10.0|0,0,0|4.0.0.1", + "38.0|406.0|Helvetica|10.0|0,0,0|3.0.0.0", + "142.6|406.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|406.0|Helvetica|10.0|0,0,0|3.0.0.2", + "351.8|406.0|Helvetica|10.0|0,0,0|3.0.0.2", + "38.0|392.0|Helvetica|10.0|0,0,0|12.0.0.0", + "142.6|392.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|392.0|Helvetica|10.0|0,0,0|12.0.0.2", + "351.8|392.0|Helvetica|10.0|0,0,0|12.0.0.2", + "38.0|378.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|378.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|378.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|378.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|343.0|Helvetica-Bold|12.0|64,64,64|2.7.", + "36.0|328.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|316.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|302.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|270.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|258.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|258.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|258.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|244.0|Helvetica|10.0|0,0,0|80:6D:2A:57:59:B2", + "177.47|244.0|Helvetica|10.0|0,0,0|4.0.0.2", + "316.93|244.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|230.0|Helvetica|10.0|0,0,0|69:EB:EB:6E:F6:82", + "177.47|230.0|Helvetica|10.0|0,0,0|5.0.0.1", + "316.93|230.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|216.0|Helvetica|10.0|0,0,0|C9:5D:41:10:67:82", + "177.47|216.0|Helvetica|10.0|0,0,0|120.130.140.1", + "316.93|216.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|184.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|172.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|172.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|172.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|172.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|158.0|Helvetica|10.0|0,0,0|120.130.140.1", + "142.6|158.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|158.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|158.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|144.0|Helvetica|10.0|0,0,0|5.0.0.1", + "142.6|144.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|144.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|144.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|130.0|Helvetica|10.0|0,0,0|4.0.0.2", + "142.6|130.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|130.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|130.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|116.0|Helvetica|10.0|0,0,0|120.130.140.0", + "142.6|116.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|116.0|Helvetica|10.0|0,0,0|120.130.140.1", + "351.8|116.0|Helvetica|10.0|0,0,0|120.130.140.1", + "38.0|102.0|Helvetica|10.0|0,0,0|5.0.0.0", + "142.6|102.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|102.0|Helvetica|10.0|0,0,0|5.0.0.1", + "351.8|102.0|Helvetica|10.0|0,0,0|5.0.0.1", + "38.0|88.0|Helvetica|10.0|0,0,0|4.0.0.0", + "142.6|88.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|88.0|Helvetica|10.0|0,0,0|4.0.0.2", + "351.8|88.0|Helvetica|10.0|0,0,0|4.0.0.2", + "38.0|74.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|74.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|74.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|74.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|39.0|Helvetica-Bold|12.0|64,64,64|2.8." + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|779.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|765.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|733.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|721.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|721.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|721.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|707.0|Helvetica|10.0|0,0,0|A0:D8:AE:E8:2A:E1", + "177.47|707.0|Helvetica|10.0|0,0,0|5.0.0.2", + "316.93|707.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|693.0|Helvetica|10.0|0,0,0|A2:3C:B4:FB:9D:D1", + "177.47|693.0|Helvetica|10.0|0,0,0|140.100.200.1", + "316.93|693.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|661.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|649.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|649.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|649.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|649.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|635.0|Helvetica|10.0|0,0,0|140.100.200.1", + "142.6|635.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|635.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|635.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|621.0|Helvetica|10.0|0,0,0|5.0.0.2", + "142.6|621.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|621.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|621.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|607.0|Helvetica|10.0|0,0,0|140.100.200.0", + "142.6|607.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|607.0|Helvetica|10.0|0,0,0|140.100.200.1", + "351.8|607.0|Helvetica|10.0|0,0,0|140.100.200.1", + "38.0|593.0|Helvetica|10.0|0,0,0|5.0.0.0", + "142.6|593.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|593.0|Helvetica|10.0|0,0,0|5.0.0.2", + "351.8|593.0|Helvetica|10.0|0,0,0|5.0.0.2", + "38.0|579.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|579.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|579.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|579.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|544.0|Helvetica-Bold|12.0|64,64,64|2.9. ", + "59.35|544.0|Helvetica-Bold|12.0|64,64,64|DNS (8.8.8.8)", + "36.0|529.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|517.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|517.0|Helvetica|10.0|0,0,0|8.0.0.1", + "38.0|503.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "38.0|489.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|479.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|489.0|Helvetica|10.0|0,0,0|Nein", + "36.0|447.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|435.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|435.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|435.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|421.0|Helvetica|10.0|0,0,0|17:66:19:C9:9E:29", + "177.47|421.0|Helvetica|10.0|0,0,0|8.8.8.8", + "316.93|421.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|389.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|374.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|374.0|Helvetica|10.0|0,0,0|DNS-Server, Text-Editor, Befehlszeile", + "36.0|344.0|Helvetica-Bold|10.0|64,64,64|Konfiguration DNS-Server", + "38.0|332.0|Helvetica-Bold|10.0|0,0,0|Domainname", + "188.62|332.0|Helvetica-Bold|10.0|0,0,0|Typ", + "238.83|332.0|Helvetica-Bold|10.0|0,0,0|Daten", + "38.0|318.0|Helvetica|10.0|0,0,0|webserver.de.", + "188.62|318.0|Helvetica|10.0|0,0,0|A", + "238.83|318.0|Helvetica|10.0|0,0,0|120.130.140.80", + "38.0|304.0|Helvetica|10.0|0,0,0|gmx.de.", + "188.62|304.0|Helvetica|10.0|0,0,0|MX", + "238.83|304.0|Helvetica|10.0|0,0,0|mail.gmx.de.", + "38.0|290.0|Helvetica|10.0|0,0,0|mail.gmx.de.", + "188.62|290.0|Helvetica|10.0|0,0,0|A", + "238.83|290.0|Helvetica|10.0|0,0,0|130.100.200.25", + "38.0|276.0|Helvetica|10.0|0,0,0|mail.webmail.de.", + "188.62|276.0|Helvetica|10.0|0,0,0|A", + "238.83|276.0|Helvetica|10.0|0,0,0|140.100.200.25", + "38.0|262.0|Helvetica|10.0|0,0,0|webmail.de.", + "188.62|262.0|Helvetica|10.0|0,0,0|MX", + "238.83|262.0|Helvetica|10.0|0,0,0|mail.webmail.de.", + "38.0|248.0|Helvetica|10.0|0,0,0|meine-schule.de.", + "188.62|248.0|Helvetica|10.0|0,0,0|A", + "238.83|248.0|Helvetica|10.0|0,0,0|42.0.0.10", + "36.0|216.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|204.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|204.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|204.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|204.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|190.0|Helvetica|10.0|0,0,0|8.8.8.8", + "142.6|190.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|190.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|190.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|176.0|Helvetica|10.0|0,0,0|8.0.0.0", + "142.6|176.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|176.0|Helvetica|10.0|0,0,0|8.8.8.8", + "351.8|176.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|162.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|162.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|162.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|162.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|148.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|148.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|148.0|Helvetica|10.0|0,0,0|8.0.0.1", + "351.8|148.0|Helvetica|10.0|0,0,0|8.8.8.8", + "36.0|113.0|Helvetica-Bold|12.0|64,64,64|2.10. ", + "66.02|113.0|Helvetica-Bold|12.0|64,64,64|webserver.de (120.130.140.80)", + "36.0|98.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|86.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|86.0|Helvetica|10.0|0,0,0|120.130.140.1", + "38.0|72.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|72.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|58.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|48.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|58.0|Helvetica|10.0|0,0,0|Nein" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|776.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|764.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|764.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|764.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|750.0|Helvetica|10.0|0,0,0|4B:ED:F2:C7:AF:8C", + "177.47|750.0|Helvetica|10.0|0,0,0|120.130.140.80", + "316.93|750.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|718.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|703.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|703.0|Helvetica|10.0|0,0,0|Webserver, Text-Editor, Befehlszeile", + "36.0|673.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|661.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|661.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|661.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|661.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|647.0|Helvetica|10.0|0,0,0|120.130.140.80", + "142.6|647.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|647.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|647.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|633.0|Helvetica|10.0|0,0,0|120.130.140.0", + "142.6|633.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|633.0|Helvetica|10.0|0,0,0|120.130.140.80", + "351.8|633.0|Helvetica|10.0|0,0,0|120.130.140.80", + "38.0|619.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|619.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|619.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|619.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|605.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|605.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|605.0|Helvetica|10.0|0,0,0|120.130.140.1", + "351.8|605.0|Helvetica|10.0|0,0,0|120.130.140.80", + "36.0|570.0|Helvetica-Bold|12.0|64,64,64|2.11. ", + "66.02|570.0|Helvetica-Bold|12.0|64,64,64|mail.gmx.de (130.100.200.25)", + "36.0|555.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|543.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|543.0|Helvetica|10.0|0,0,0|130.100.200.1", + "38.0|529.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|529.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|515.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|505.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|515.0|Helvetica|10.0|0,0,0|Nein", + "36.0|473.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|461.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|461.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|461.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|447.0|Helvetica|10.0|0,0,0|47:AF:A1:5F:0E:C7", + "177.47|447.0|Helvetica|10.0|0,0,0|130.100.200.25", + "316.93|447.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|415.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|400.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|400.0|Helvetica|10.0|0,0,0|E-Mail-Server", + "36.0|370.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|358.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|358.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|358.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|358.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|344.0|Helvetica|10.0|0,0,0|130.100.200.25", + "142.6|344.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|344.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|344.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|330.0|Helvetica|10.0|0,0,0|130.100.200.0", + "142.6|330.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|330.0|Helvetica|10.0|0,0,0|130.100.200.25", + "351.8|330.0|Helvetica|10.0|0,0,0|130.100.200.25", + "38.0|316.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|316.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|316.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|316.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|302.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|302.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|302.0|Helvetica|10.0|0,0,0|130.100.200.1", + "351.8|302.0|Helvetica|10.0|0,0,0|130.100.200.25", + "36.0|267.0|Helvetica-Bold|12.0|64,64,64|2.12. ", + "66.02|267.0|Helvetica-Bold|12.0|64,64,64|mail.webmail.de (140.100.200.25)", + "36.0|252.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|240.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|240.0|Helvetica|10.0|0,0,0|140.100.200.1", + "38.0|226.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|226.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|212.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|202.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|212.0|Helvetica|10.0|0,0,0|Nein", + "36.0|170.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|158.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|158.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|158.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|144.0|Helvetica|10.0|0,0,0|62:A4:B8:31:8D:33", + "177.47|144.0|Helvetica|10.0|0,0,0|140.100.200.25", + "316.93|144.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|112.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|97.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|97.0|Helvetica|10.0|0,0,0|E-Mail-Server", + "36.0|67.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|55.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|55.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|55.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|55.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|41.0|Helvetica|10.0|0,0,0|140.100.200.25", + "142.6|41.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|41.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|41.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica|10.0|0,0,0|140.100.200.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|140.100.200.25", + "351.8|794.0|Helvetica|10.0|0,0,0|140.100.200.25", + "38.0|780.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|140.100.200.1", + "351.8|766.0|Helvetica|10.0|0,0,0|140.100.200.25", + "36.0|731.0|Helvetica-Bold|12.0|64,64,64|2.13. ", + "66.02|731.0|Helvetica-Bold|12.0|64,64,64|meine-schule.de (10.0.0.1)", + "36.0|716.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|704.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|704.0|Helvetica|10.0|0,0,0|10.0.0.2", + "38.0|690.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|690.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|676.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|666.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|676.0|Helvetica|10.0|0,0,0|Nein", + "36.0|634.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|622.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|622.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|622.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|608.0|Helvetica|10.0|0,0,0|C5:39:AE:55:77:F5", + "177.47|608.0|Helvetica|10.0|0,0,0|10.0.0.1", + "316.93|608.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|576.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|561.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|561.0|Helvetica|10.0|0,0,0|Webserver, DNS-Server, Text-Editor, Befehlszeile", + "36.0|531.0|Helvetica-Bold|10.0|64,64,64|Konfiguration DNS-Server", + "38.0|519.0|Helvetica-Bold|10.0|0,0,0|Domainname", + "188.62|519.0|Helvetica-Bold|10.0|0,0,0|Typ", + "238.83|519.0|Helvetica-Bold|10.0|0,0,0|Daten", + "38.0|505.0|Helvetica|10.0|0,0,0|meine-schule.de.", + "188.62|505.0|Helvetica|10.0|0,0,0|A", + "238.83|505.0|Helvetica|10.0|0,0,0|10.0.0.1", + "36.0|473.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|461.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|461.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|461.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|461.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|447.0|Helvetica|10.0|0,0,0|10.0.0.1", + "142.6|447.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|447.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|447.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|433.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|433.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|433.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|433.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|419.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|419.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|419.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|419.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|405.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|405.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|405.0|Helvetica|10.0|0,0,0|10.0.0.2", + "351.8|405.0|Helvetica|10.0|0,0,0|10.0.0.1", + "36.0|370.0|Helvetica-Bold|12.0|64,64,64|2.14. ", + "66.02|370.0|Helvetica-Bold|12.0|64,64,64|Heimrouter", + "36.0|355.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|343.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|343.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|329.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|329.0|Helvetica|10.0|0,0,0|8.8.8.8", + "36.0|297.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|285.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|285.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|285.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|271.0|Helvetica|10.0|0,0,0|E4:0B:71:77:E8:25", + "177.47|271.0|Helvetica|10.0|0,0,0|43.0.0.11", + "316.93|271.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|257.0|Helvetica|10.0|0,0,0|F6:F2:70:B5:92:97", + "177.47|257.0|Helvetica|10.0|0,0,0|192.168.1.1", + "316.93|257.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|225.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|213.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|213.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|213.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|213.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|199.0|Helvetica|10.0|0,0,0|192.168.1.1", + "142.6|199.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|199.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|199.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|185.0|Helvetica|10.0|0,0,0|43.0.0.11", + "142.6|185.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|185.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|185.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|171.0|Helvetica|10.0|0,0,0|192.168.1.0", + "142.6|171.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|171.0|Helvetica|10.0|0,0,0|192.168.1.1", + "351.8|171.0|Helvetica|10.0|0,0,0|192.168.1.1", + "38.0|157.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|157.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|157.0|Helvetica|10.0|0,0,0|43.0.0.11", + "351.8|157.0|Helvetica|10.0|0,0,0|43.0.0.11", + "38.0|143.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|143.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|143.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|143.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|129.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|129.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|129.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|129.0|Helvetica|10.0|0,0,0|43.0.0.11", + "36.0|94.0|Helvetica-Bold|12.0|64,64,64|2.15. ", + "66.02|94.0|Helvetica-Bold|12.0|64,64,64|192.168.1.11", + "36.0|79.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|67.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|67.0|Helvetica|10.0|0,0,0|192.168.1.1", + "38.0|53.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|53.0|Helvetica|10.0|0,0,0|8.8.8.8" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|784.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|794.0|Helvetica|10.0|0,0,0|Ja", + "36.0|752.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|740.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|740.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|740.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|726.0|Helvetica|10.0|0,0,0|68:3B:FB:D6:E1:D8", + "177.47|726.0|Helvetica|10.0|0,0,0|192.168.1.11", + "316.93|726.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|694.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|679.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|679.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|649.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|637.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|637.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|637.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|637.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|623.0|Helvetica|10.0|0,0,0|192.168.1.11", + "142.6|623.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|623.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|623.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|609.0|Helvetica|10.0|0,0,0|192.168.1.0", + "142.6|609.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|609.0|Helvetica|10.0|0,0,0|192.168.1.11", + "351.8|609.0|Helvetica|10.0|0,0,0|192.168.1.11", + "38.0|595.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|595.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|595.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|595.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|581.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|581.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|581.0|Helvetica|10.0|0,0,0|192.168.1.1", + "351.8|581.0|Helvetica|10.0|0,0,0|192.168.1.11", + "36.0|546.0|Helvetica-Bold|12.0|64,64,64|2.16. ", + "66.02|546.0|Helvetica-Bold|12.0|64,64,64|10.50.50.11", + "36.0|531.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|519.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|519.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|505.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|505.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|491.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|481.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|491.0|Helvetica|10.0|0,0,0|Ja", + "36.0|449.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|437.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|437.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|437.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|423.0|Helvetica|10.0|0,0,0|EF:1A:35:6C:C2:DC", + "177.47|423.0|Helvetica|10.0|0,0,0|10.50.50.11", + "316.93|423.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|391.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|376.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|376.0|Helvetica|10.0|0,0,0|E-Mail-Programm, Befehlszeile, Webbrowser", + "36.0|346.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|334.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|334.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|334.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|334.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|320.0|Helvetica|10.0|0,0,0|10.50.50.11", + "142.6|320.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|320.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|320.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|306.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|306.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|306.0|Helvetica|10.0|0,0,0|10.50.50.11", + "351.8|306.0|Helvetica|10.0|0,0,0|10.50.50.11", + "38.0|292.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|292.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|292.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|292.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|278.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|278.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|278.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|278.0|Helvetica|10.0|0,0,0|10.50.50.11", + "36.0|243.0|Helvetica-Bold|12.0|64,64,64|2.17. ", + "66.02|243.0|Helvetica-Bold|12.0|64,64,64|10.50.50.14", + "36.0|228.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|216.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|216.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|202.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|202.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|188.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|178.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|188.0|Helvetica|10.0|0,0,0|Ja", + "36.0|146.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|134.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|134.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|134.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|120.0|Helvetica|10.0|0,0,0|19:06:AC:C7:9D:0E", + "177.47|120.0|Helvetica|10.0|0,0,0|10.50.50.14", + "316.93|120.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|88.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|73.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|73.0|Helvetica|10.0|0,0,0|-", + "36.0|43.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|794.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|794.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|794.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|780.0|Helvetica|10.0|0,0,0|10.50.50.14", + "142.6|780.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|10.50.50.14", + "351.8|766.0|Helvetica|10.0|0,0,0|10.50.50.14", + "38.0|752.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|752.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|752.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|752.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|738.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|738.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|738.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|738.0|Helvetica|10.0|0,0,0|10.50.50.14", + "36.0|703.0|Helvetica-Bold|12.0|64,64,64|2.18. ", + "66.02|703.0|Helvetica-Bold|12.0|64,64,64|10.50.50.13", + "36.0|688.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|676.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|676.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|662.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|662.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|648.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|638.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|648.0|Helvetica|10.0|0,0,0|Ja", + "36.0|606.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|594.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|594.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|594.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|580.0|Helvetica|10.0|0,0,0|D3:51:75:D6:71:EA", + "177.47|580.0|Helvetica|10.0|0,0,0|10.50.50.13", + "316.93|580.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|548.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|533.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|533.0|Helvetica|10.0|0,0,0|-", + "36.0|503.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|491.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|491.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|491.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|491.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|477.0|Helvetica|10.0|0,0,0|10.50.50.13", + "142.6|477.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|477.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|477.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|463.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|463.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|463.0|Helvetica|10.0|0,0,0|10.50.50.13", + "351.8|463.0|Helvetica|10.0|0,0,0|10.50.50.13", + "38.0|449.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|449.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|449.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|449.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|435.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|435.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|435.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|435.0|Helvetica|10.0|0,0,0|10.50.50.13", + "36.0|400.0|Helvetica-Bold|12.0|64,64,64|2.19. ", + "66.02|400.0|Helvetica-Bold|12.0|64,64,64|10.50.50.12", + "36.0|385.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|373.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|373.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|359.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|359.0|Helvetica|10.0|0,0,0|10.0.0.1", + "38.0|345.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|335.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|345.0|Helvetica|10.0|0,0,0|Ja", + "36.0|303.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|291.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|291.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|291.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|277.0|Helvetica|10.0|0,0,0|E2:AC:66:8B:39:9F", + "177.47|277.0|Helvetica|10.0|0,0,0|10.50.50.12", + "316.93|277.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|245.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|230.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|230.0|Helvetica|10.0|0,0,0|Befehlszeile, Webbrowser", + "36.0|200.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|188.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|188.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|188.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|188.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|174.0|Helvetica|10.0|0,0,0|10.50.50.12", + "142.6|174.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|174.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|174.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|160.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|160.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|160.0|Helvetica|10.0|0,0,0|10.50.50.12", + "351.8|160.0|Helvetica|10.0|0,0,0|10.50.50.12", + "38.0|146.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|146.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|146.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|146.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|132.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|132.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|132.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|132.0|Helvetica|10.0|0,0,0|10.50.50.12", + "36.0|97.0|Helvetica-Bold|12.0|64,64,64|2.20. ", + "66.02|97.0|Helvetica-Bold|12.0|64,64,64|Firewall", + "36.0|82.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|70.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|70.0|Helvetica|10.0|0,0,0|42.0.0.1", + "38.0|56.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|791.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|779.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|779.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|779.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|765.0|Helvetica|10.0|0,0,0|95:C1:83:23:BB:4C", + "177.47|765.0|Helvetica|10.0|0,0,0|42.0.0.10", + "316.93|765.0|Helvetica|10.0|0,0,0|255.0.0.0", + "38.0|751.0|Helvetica|10.0|0,0,0|D6:AF:B6:8B:75:85", + "177.47|751.0|Helvetica|10.0|0,0,0|10.0.0.2", + "316.93|751.0|Helvetica|10.0|0,0,0|255.0.0.0", + "36.0|719.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|707.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|707.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|707.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|707.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|693.0|Helvetica|10.0|0,0,0|10.0.0.2", + "142.6|693.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|693.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|693.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|679.0|Helvetica|10.0|0,0,0|42.0.0.10", + "142.6|679.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|679.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|679.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|665.0|Helvetica|10.0|0,0,0|10.0.0.0", + "142.6|665.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|665.0|Helvetica|10.0|0,0,0|10.0.0.2", + "351.8|665.0|Helvetica|10.0|0,0,0|10.0.0.2", + "38.0|651.0|Helvetica|10.0|0,0,0|42.0.0.0", + "142.6|651.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|651.0|Helvetica|10.0|0,0,0|42.0.0.10", + "351.8|651.0|Helvetica|10.0|0,0,0|42.0.0.10", + "38.0|637.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|637.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|637.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|637.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|623.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|623.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|623.0|Helvetica|10.0|0,0,0|42.0.0.1", + "351.8|623.0|Helvetica|10.0|0,0,0|42.0.0.10", + "36.0|591.0|Helvetica-Bold|10.0|64,64,64|Portfreigaben", + "38.0|579.0|Helvetica-Bold|10.0|0,0,0|Protokoll", + "142.6|579.0|Helvetica-Bold|10.0|0,0,0|Portfreigabe", + "247.2|579.0|Helvetica-Bold|10.0|0,0,0|LAN-Adresse", + "351.8|579.0|Helvetica-Bold|10.0|0,0,0|LAN-Port", + "38.0|565.0|Helvetica|10.0|0,0,0|TCP", + "142.6|565.0|Helvetica|10.0|0,0,0|80", + "247.2|565.0|Helvetica|10.0|0,0,0|10.0.0.1", + "351.8|565.0|Helvetica|10.0|0,0,0|80", + "36.0|530.0|Helvetica-Bold|12.0|64,64,64|2.21. ", + "66.02|530.0|Helvetica-Bold|12.0|64,64,64|Provider 2", + "36.0|515.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|503.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "38.0|489.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "36.0|457.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|445.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|445.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|445.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|431.0|Helvetica|10.0|0,0,0|11:EE:8E:9F:31:18", + "177.47|431.0|Helvetica|10.0|0,0,0|43.0.0.1", + "316.93|431.0|Helvetica|10.0|0,0,0|255.255.255.0", + "38.0|417.0|Helvetica|10.0|0,0,0|B7:E7:AB:01:FE:F6", + "177.47|417.0|Helvetica|10.0|0,0,0|15.0.0.2", + "316.93|417.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|385.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|373.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|373.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|373.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|373.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|359.0|Helvetica|10.0|0,0,0|15.0.0.2", + "142.6|359.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|359.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|359.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|345.0|Helvetica|10.0|0,0,0|43.0.0.1", + "142.6|345.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|345.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|345.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|331.0|Helvetica|10.0|0,0,0|15.0.0.0", + "142.6|331.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|331.0|Helvetica|10.0|0,0,0|15.0.0.2", + "351.8|331.0|Helvetica|10.0|0,0,0|15.0.0.2", + "38.0|317.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|317.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|317.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|317.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|303.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|303.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|303.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|303.0|Helvetica|10.0|0,0,0|127.0.0.1", + "36.0|268.0|Helvetica-Bold|12.0|64,64,64|2.22. ", + "66.02|268.0|Helvetica-Bold|12.0|64,64,64|Provider 2 DCHP Server", + "36.0|253.0|Helvetica-Bold|10.0|64,64,64|Basiskonfiguration", + "38.0|241.0|Helvetica-Bold|10.0|0,0,0|Gateway", + "177.47|241.0|Helvetica|10.0|0,0,0|43.0.0.1", + "38.0|227.0|Helvetica-Bold|10.0|0,0,0|Domain Name Server", + "177.47|227.0|Helvetica|10.0|0,0,0|8.8.8.8", + "38.0|213.0|Helvetica-Bold|10.0|0,0,0|DHCP zur Konfiguration", + "38.0|203.0|Helvetica-Bold|10.0|0,0,0|verwenden", + "177.47|213.0|Helvetica|10.0|0,0,0|Nein", + "36.0|171.0|Helvetica-Bold|10.0|64,64,64|Netzwerkschnittstellen", + "38.0|159.0|Helvetica-Bold|10.0|0,0,0|MAC-Adresse", + "177.47|159.0|Helvetica-Bold|10.0|0,0,0|IP-Adresse", + "316.93|159.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "38.0|145.0|Helvetica|10.0|0,0,0|55:E4:24:B2:2F:7B", + "177.47|145.0|Helvetica|10.0|0,0,0|43.0.0.2", + "316.93|145.0|Helvetica|10.0|0,0,0|255.255.255.0", + "36.0|113.0|Helvetica-Bold|10.0|64,64,64|Anwendungen", + "36.0|98.0|Helvetica-Bold|10.0|0,0,0|Installiert: ", + "86.57|98.0|Helvetica|10.0|0,0,0|-", + "36.0|68.0|Helvetica-Bold|10.0|64,64,64|Weiterleitungstabelle", + "38.0|56.0|Helvetica-Bold|10.0|0,0,0|Ziel", + "142.6|56.0|Helvetica-Bold|10.0|0,0,0|Netzmaske", + "247.2|56.0|Helvetica-Bold|10.0|0,0,0|Nächstes Gateway", + "351.8|56.0|Helvetica-Bold|10.0|0,0,0|Über Schnittstelle", + "38.0|42.0|Helvetica|10.0|0,0,0|43.0.0.2", + "142.6|42.0|Helvetica|10.0|0,0,0|255.255.255.255", + "247.2|42.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|42.0|Helvetica|10.0|0,0,0|127.0.0.1" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "38.0|794.0|Helvetica|10.0|0,0,0|43.0.0.0", + "142.6|794.0|Helvetica|10.0|0,0,0|255.255.255.0", + "247.2|794.0|Helvetica|10.0|0,0,0|43.0.0.2", + "351.8|794.0|Helvetica|10.0|0,0,0|43.0.0.2", + "38.0|780.0|Helvetica|10.0|0,0,0|127.0.0.0", + "142.6|780.0|Helvetica|10.0|0,0,0|255.0.0.0", + "247.2|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "351.8|780.0|Helvetica|10.0|0,0,0|127.0.0.1", + "38.0|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "142.6|766.0|Helvetica|10.0|0,0,0|0.0.0.0", + "247.2|766.0|Helvetica|10.0|0,0,0|43.0.0.1", + "351.8|766.0|Helvetica|10.0|0,0,0|43.0.0.2" + ], + "images": [] + }, + { + "size": [ + 595.0, + 842.0 + ], + "texts": [ + "36.0|785.0|Helvetica-Bold|14.0|64,64,64|3. ", + "51.57|785.0|Helvetica-Bold|14.0|64,64,64|Datenaustausch", + "36.0|767.0|Helvetica-Bold|12.0|64,64,64|3.1. ", + "59.35|767.0|Helvetica-Bold|12.0|64,64,64|Heimrouter - 192.168.1.1", + "44.5|757.0|Helvetica-Bold|8.0|0,0,0|N", + "64.5|757.0|Helvetica-Bold|8.0|0,0,0|Z", + "124.5|757.0|Helvetica-Bold|8.0|0,0,0|Q", + "204.5|757.0|Helvetica-Bold|8.0|0,0,0|D", + "284.5|757.0|Helvetica-Bold|8.0|0,0,0|P", + "324.5|757.0|Helvetica-Bold|8.0|0,0,0|S", + "374.5|757.0|Helvetica-Bold|8.0|0,0,0|B", + "44.5|745.0|Helvetica|8.0|0,0,0|1", + "64.5|745.0|Helvetica|8.0|0,0,0|12:00:00.000", + "124.5|745.0|Helvetica|8.0|0,0,0|a ? b", + "204.5|745.0|Helvetica|8.0|0,0,0|Ü", + "284.5|745.0|Helvetica|8.0|0,0,0|TCP", + "324.5|745.0|Helvetica|8.0|0,0,0|Transport", + "374.5|745.0|Helvetica|8.0|0,0,0|eins", + "374.5|737.0|Helvetica|8.0|0,0,0|zwei" + ], + "images": [] + } + ], + "sha256": "c0d77e2e2839b4efae3729ce86f74bc46e9d7229ec18be38e3d17ed6578077dc" + } +} diff --git a/packages/editor/test/report.test.ts b/packages/editor/test/report.test.ts new file mode 100644 index 0000000..fdb2731 --- /dev/null +++ b/packages/editor/test/report.test.ts @@ -0,0 +1,326 @@ +// FILIUS' report against Java's own (tools/java-oracle's ReportRun, +// report.java.json): every piece of text on Java's pages — its words, place, +// font, size and colour — laid out here from the same project: the title, +// the devices' pages of Internet_Komplett (real MAC addresses, no run), the +// data exchange of einfaches_rechnernetz_komplett after a run of 3 s (its +// rows taken from Java's pages, so that the layout is compared, not the +// run), a project without devices and an empty one. + +import { createHash } from 'node:crypto'; +import { readFileSync, writeFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { PDFDocument, StandardFonts } from 'pdf-lib'; +import { beforeAll, describe, expect, it } from 'vitest'; +import * as Y from 'yjs'; +import { openProjectArchive } from '@mdg-filius/fls'; +import { reportDevices, writeProject, type ReportDevice } from '@mdg-filius/doc'; +import { translate } from '../src/i18n/i18n.js'; +import { reportPages, reportTitle, SMALL_FONT, TRAFFIC_WIDTHS, type ReportInput } from '../src/report/report.js'; +import { pdfFonts, REPORT_CREATOR, reportPdf } from '../src/report/reportPdf.js'; +import { ReportWriter, type ReportFonts, type ReportOp } from '../src/report/reportWriter.js'; + +const here = dirname(fileURLToPath(import.meta.url)); +interface JavaPdf { + readonly title: string; + readonly creator: string; + readonly pages: readonly { + readonly size: readonly number[]; + readonly texts: readonly string[]; + readonly images: readonly { x: number; y: number; width: number; height: number; pixels: readonly number[] }[]; + }[]; +} +const java = JSON.parse(readFileSync(join(here, 'report.java.json'), 'utf8')) as { + readonly projects: Readonly>; + readonly empty: { readonly pdf: JavaPdf }; +}; + +const t = (key: string) => translate('de', key); +let fonts: ReportFonts; +beforeAll(async () => { + const pdf = await PDFDocument.create(); + fonts = pdfFonts({ Helvetica: await pdf.embedFont(StandardFonts.Helvetica), 'Helvetica-Bold': await pdf.embedFont(StandardFonts.HelveticaBold) }); +}); + +function devicesOf(file: string): ReportDevice[] { + const doc = new Y.Doc(); + let next = 0; + writeProject( + doc, + openProjectArchive(new Uint8Array(readFileSync(join(here, '../../../corpus/java-examples', file))), () => `id${next++}`), + ); + return reportDevices(doc); +} + +/** A piece of text as Java's file has it: x|y|font|size|colour|text, the text without the spaces at its end. */ +const javaText = (piece: string) => { + const [x, y, font, size, color, ...words] = piece.split('|'); + return `${Number(x).toFixed(2)}|${Number(y).toFixed(2)}|${font}|${Number(size)}|${color}|${words.join('|').trimEnd()}`; +}; +const ourText = (op: ReportOp) => (op.kind === 'text' ? `${op.x.toFixed(2)}|${op.y.toFixed(2)}|${op.font}|${op.size}|${op.color.join(',')}|${op.text.trimEnd()}` : undefined); +/** From the top down, left to right: iText writes paragraphs and tables in layers of their own, so the order of drawing differs. */ +const byPlace = (pieces: readonly string[]) => + [...pieces].sort((lhs, rhs) => { + const [lx, ly] = lhs.split('|').map(Number); + const [rx, ry] = rhs.split('|').map(Number); + return ry! - ly! || lx! - rx! || (lhs < rhs ? -1 : 1); + }); +const texts = (ops: readonly ReportOp[]) => byPlace(ops.map(ourText).filter((text): text is string => text !== undefined)); +const javaTexts = (pieces: readonly string[]) => byPlace(pieces.map(javaText)); + +describe("the report's devices, as Java's report", () => { + const file = 'Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls'; + + it('writes every device of Internet_Komplett as Java does, piece by piece', () => { + const javaPdf = java.projects[file]!.pdf; + const pages = reportPages( + { projectName: file, image: { width: javaPdf.pages[0]!.images[0]!.pixels[0]!, height: javaPdf.pages[0]!.images[0]!.pixels[1]! }, devices: devicesOf(file), traffic: [], t }, + fonts, + ); + expect(pages.length).toBe(javaPdf.pages.length); + // Java's "true" and "false" are Java's own „Ja“ and „Nein“ here. + const ours = (index: number) => texts(pages[index]!).map((text) => text.replace(/\|Ja$/, '|true').replace(/\|Nein$/, '|false')); + for (let index = 1; index < pages.length; index++) expect(ours(index), `page ${index + 1}`).toEqual(javaTexts(javaPdf.pages[index]!.texts)); + }); +}); + +describe("the report's first page, as Java's", () => { + const image = (pdf: JavaPdf) => ({ width: pdf.pages[0]!.images[0]!.pixels[0]!, height: pdf.pages[0]!.images[0]!.pixels[1]! }); + const imageOps = (ops: readonly ReportOp[]) => + ops.filter((op) => op.kind === 'image').map((op) => ({ x: op.x, y: Math.round(op.y * 100) / 100, width: op.width, height: Math.round(op.height * 100) / 100 })); + const javaImages = (pdf: JavaPdf, page: number) => pdf.pages[page]!.images.map(({ x, y, width, height }) => ({ x, y, width, height })); + + it('writes the title, the name below it and the overview with the image as Java does', () => { + const file = 'einfaches_rechnernetz_komplett.fls'; + const javaPdf = java.projects[file]!.pdf; + const pages = reportPages({ projectName: file, image: image(javaPdf), devices: [], traffic: [], t }, fonts); + // Below the title Java writes the file's path, here its name: the same place, font and size. + const withoutPath = (pieces: readonly string[]) => pieces.map((piece) => (piece.includes('|Helvetica|8|') ? piece.replace(/\|[^|]*$/, '|') : piece)); + expect(withoutPath(texts(pages[0]!))).toEqual(withoutPath(javaTexts(javaPdf.pages[0]!.texts))); + expect(texts(pages[0]!)).toContain('36.00|752.00|Helvetica|8|0,0,0|einfaches_rechnernetz_komplett.fls'); + expect(imageOps(pages[0]!)).toEqual(javaImages(javaPdf, 0)); + expect(javaPdf.title).toBe(reportTitle(t, file)); + expect(javaPdf.pages.every((page) => page.size.join() === '595,842')).toBe(true); + }); + + it('breaks a long title as Java does, centred', () => { + const file = 'Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls'; + const titleOf = (pieces: readonly string[]) => pieces.filter((piece) => piece.includes('|Helvetica-Bold|18|')); + const pages = reportPages({ projectName: file, image: image(java.projects[file]!.pdf), devices: [], traffic: [], t }, fonts); + expect(titleOf(texts(pages[0]!))).toEqual(titleOf(javaTexts(java.projects[file]!.pdf.pages[0]!.texts))); + }); + + it('writes a project without devices as Java does: the overview, then „Komponenten“ alone', () => { + const javaPdf = java.projects['documentation.fls']!.pdf; + const pages = reportPages({ projectName: 'documentation.fls', image: image(javaPdf), devices: [], traffic: [], t }, fonts); + expect(pages.length).toBe(2); + expect(imageOps(pages[0]!)).toEqual(javaImages(javaPdf, 0)); + expect(texts(pages[1]!)).toEqual(javaTexts(javaPdf.pages[1]!.texts)); + }); + + it("writes an empty project's report as Java does, but its image fits on its page (Java's runs beyond it)", () => { + const javaPdf = java.empty.pdf; + const pixels = { width: javaPdf.pages[1]!.images[0]!.pixels[0]!, height: javaPdf.pages[1]!.images[0]!.pixels[1]! }; + const pages = reportPages({ image: pixels, devices: [], traffic: [], t }, fonts); + expect(pages.length).toBe(javaPdf.pages.length); + [0, 2].forEach((page) => expect(texts(pages[page]!)).toEqual(javaTexts(javaPdf.pages[page]!.texts))); + // Java's: as wide as the page, 915 high, from 795.5 down to -119.75; here as high as the page leaves. + expect(javaImages(javaPdf, 1)).toEqual([{ x: 36, y: -119.75, width: 523, height: 915.25 }]); + expect(imageOps(pages[1]!)).toEqual([{ x: 36, y: 36, width: Math.round(((759.5 * 20) / 35) * 1e13) / 1e13, height: 759.5 }]); + expect(javaPdf.title).toBe(reportTitle(t, undefined)); + }); +}); + +/** Java's data exchange, taken back from its pages: each card's heading and its rows' cells (by their columns). */ +function javaTraffic(pdf: JavaPdf): { title: string; header: string[]; rows: string[][] }[] { + const columns = [44.5, 64.5, 124.5, 204.5, 284.5, 324.5, 374.5]; + const cards: { title: string; header: string[]; rows: string[][] }[] = []; + let inTraffic = false; + for (const page of pdf.pages) { + const lines = new Map(); + for (const piece of page.texts) { + const [x, y, font, size, , ...words] = piece.split('|'); + lines.set(Number(y), [...(lines.get(Number(y)) ?? []), { x: Number(x), font: font!, size: Number(size), text: words.join('|').trimEnd() }]); + } + for (const y of [...lines.keys()].sort((lhs, rhs) => rhs - lhs)) { + const line = lines.get(y)!.sort((lhs, rhs) => lhs.x - rhs.x); + if (line[0]!.size === 14) inTraffic = line[1]?.text === t('report.traffic'); + if (!inTraffic || line[0]!.size === 14) continue; + if (line[0]!.size === 12) { + cards.push({ title: line[1]!.text, header: [], rows: [] }); + continue; + } + const card = cards[cards.length - 1]!; + if (line[0]!.font === 'Helvetica-Bold') { + card.header = line.map((each) => each.text); + continue; + } + if (line[0]!.x === columns[0]) { + const row = columns.map(() => ''); + for (const each of line) row[columns.indexOf(each.x)] = each.text; + card.rows.push(row); + } else { + // A comment's further line. + const row = card.rows[card.rows.length - 1]!; + row[6] = `${row[6]}\n${line.map((each) => each.text).join(' ')}`; + } + } + } + return cards; +} + +describe("the report's data exchange, as Java's", () => { + it("lays out Java's rows of each card as Java does: small, the columns fixed and centred, across pages", () => { + const file = 'einfaches_rechnernetz_komplett.fls'; + const javaPdf = java.projects[file]!.pdf; + const traffic = javaTraffic(javaPdf); + // Every card the Lauscher had, with all its rows. + expect(traffic.map((card) => card.rows.length)).toEqual(java.projects[file]!.packetLogCards.map((card) => card.rows)); + expect(traffic[0]!.header).toEqual(['number', 'time', 'source', 'destination', 'protocol', 'layer', 'comment'].map((key) => t(`capture.${key}`))); + const pages = reportPages({ projectName: file, image: { width: 100, height: 50 }, devices: [], traffic, t }, fonts); + const firstJava = javaPdf.pages.findIndex((page) => page.texts.some((piece) => piece.endsWith(`|${t('report.traffic')}`))); + const firstOurs = pages.findIndex((page) => texts(page).some((piece) => piece.endsWith(`|${t('report.traffic')}`))); + expect(pages.length - firstOurs).toBe(javaPdf.pages.length - firstJava); + for (let index = 0; firstOurs + index < pages.length; index++) { + expect(texts(pages[firstOurs + index]!), `page ${index + 1} of the data exchange`).toEqual(javaTexts(javaPdf.pages[firstJava + index]!.texts)); + } + expect(TRAFFIC_WIDTHS.reduce((sum, width) => sum + width, 0)).toBe(510); + }); + + it('marks the header and every second row as Java does', () => { + const pages = reportPages( + { + image: { width: 100, height: 50 }, + devices: [], + traffic: [ + { + title: 'A - 1.2.3.4', + header: ['N', 'Z', 'Q', 'D', 'P', 'S', 'B'], + rows: [ + ['1', '', '', '', '', '', ''], + ['2', '', '', '', '', '', ''], + ['3', '', '', '', '', '', ''], + ], + }, + ], + t, + }, + fonts, + ); + const rects = pages.at(-1)!.filter((op) => op.kind === 'rect'); + // The header's seven cells light blue, the second row's grey; each cell its column wide, its row high. + expect(rects.map((op) => (op.kind === 'rect' ? op.color.join() : ''))).toEqual([...Array(7).fill('230,240,255'), ...Array(7).fill('240,240,240')]); + expect(rects.map((op) => (op.kind === 'rect' ? op.width : 0))).toEqual([...TRAFFIC_WIDTHS, ...TRAFFIC_WIDTHS]); + expect(rects[0]).toMatchObject({ x: 42.5, height: 12 }); + }); +}); + +describe('the report as a PDF', () => { + const file = 'Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls'; + const input = (): ReportInput & { png: Uint8Array } => ({ + projectName: file, + png: new Uint8Array(readFileSync(join(here, '../src/assets/documentation/add_small.png'))), + image: { width: 0, height: 0 }, + devices: devicesOf(file), + // A character Helvetica cannot write ("→") becomes "?". + traffic: [{ title: 'Heimrouter - 192.168.1.1', header: ['N', 'Z', 'Q', 'D', 'P', 'S', 'B'], rows: [['1', '12:00:00.000', 'a → b', 'Ü', 'TCP', 'Transport', 'eins\nzwei']] }], + t, + }); + const date = new Date(Date.UTC(2026, 9, 4, 12, 0, 0)); + + it("is a PDF of A4 pages with Java's title and creator", async () => { + const bytes = await reportPdf(input(), date); + const loaded = await PDFDocument.load(bytes); + expect(loaded.getTitle()).toBe(`Filius-Dokumentation: ${file.replace('.fls', '')}`); + expect(loaded.getCreator()).toBe(REPORT_CREATOR); + expect(loaded.getPages().map((page) => page.getSize())).toEqual(Array(12).fill({ width: 595, height: 842 })); + }); + + it('is read by Java’s own PDF reader (iText) with the same text in the same places', async () => { + const bytes = await reportPdf(input(), date); + const digest = createHash('sha256').update(bytes).digest('hex'); + if (process.env.UPDATE_REPORT === '1') writeFileSync(join(here, '../../../tools/java-oracle/.build/report-ours.pdf'), bytes); + const read = (JSON.parse(readFileSync(join(here, 'report.ours.java.json'), 'utf8')) as Record)['report-ours.pdf']!; + // Java read this very file (UPDATE_REPORT=1, then ReportRun --read). + expect(read.sha256).toBe(digest); + const pages = reportPages({ ...input(), image: { width: 100, height: 100 } }, fonts); + expect(read.pages.length).toBe(pages.length); + pages.forEach((page, index) => expect(texts(page), `page ${index + 1}`).toEqual(javaTexts(read.pages[index]!.texts))); + expect(read.pages[0]!.images).toEqual([{ x: 36, y: 143.5, width: 523, height: 523, pixels: [40, 40] }]); + expect(texts(pages.at(-1)!)).toContain('124.50|745.00|Helvetica|8|0,0,0|a ? b'); + expect([read.title, read.creator]).toEqual([`Filius-Dokumentation: ${file.replace('.fls', '')}`, REPORT_CREATOR]); + }); +}); + +describe("the report's layout rules", () => { + /** Every character 10 wide at size 10. */ + const even: ReportFonts = { width: (text, _font, size) => text.length * size, clean: (text) => text }; + const style = { font: 'Helvetica', size: 10, color: [0, 0, 0] } as const; + + it("breaks after a hyphen as after a space, as Java's path below a long title", () => { + const javaPdf = java.projects['Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls']!.pdf; + const javaPath = javaTexts(javaPdf.pages[0]!.texts).filter((piece) => piece.includes('|Helvetica|8|')); + const writer = new ReportWriter(fonts); + writer.paragraph( + [{ text: reportTitle(t, 'Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls'), style: { font: 'Helvetica-Bold', size: 18, color: [30, 50, 120] } }], + 'center', + ); + writer.chunk(javaPath.map((piece) => piece.split('|').slice(5).join('|')).join(''), SMALL_FONT); + writer.newline(); + expect(texts(writer.finish()[0]!).filter((piece) => piece.includes('|Helvetica|8|'))).toEqual(javaPath); + expect(javaPath[0]).toMatch(/java-$/); + }); + + it('lets a space at the end of a line take no room', () => { + const writer = new ReportWriter(even); + writer.table({ widths: [104], fixed: true, align: 'left', rows: [[{ text: 'ab cdefghi j', style }]] }); + // "ab cdefghi" fills the 100 inside the cell; the space after it does not push "cdefghi" to the next line. + expect(texts(writer.finish()[0]!).map((piece) => piece.split('|').at(-1))).toEqual(['ab cdefghi', 'j']); + }); + + it('holds a character a line where the cell is narrower than one', () => { + const writer = new ReportWriter(even); + writer.table({ widths: [8], fixed: true, align: 'left', rows: [[{ text: 'ab', style }]] }); + const ops = writer.finish()[0]!; + expect(texts(ops).map((piece) => piece.split('|').slice(1, 2).concat(piece.split('|').slice(-1)))).toEqual([ + ['794.00', 'a'], + ['784.00', 'b'], + ]); + }); + + it('draws nothing for a cell of spaces, and gives it a line', () => { + const writer = new ReportWriter(even); + writer.table({ + widths: [50, 50], + fixed: true, + align: 'left', + rows: [ + [ + { text: ' ', style }, + { text: '', style }, + ], + ], + }); + writer.paragraph([{ text: 'danach', style }]); + expect(texts(writer.finish()[0]!)).toEqual(['36.00|777.00|Helvetica|10|0,0,0|danach']); + }); + + it('begins the next page with a line that would end below the margin of 36', () => { + const rows = (count: number) => Array.from({ length: count }, () => [{ text: 'x', style: SMALL_FONT }]); + const at = (count: number) => { + const writer = new ReportWriter(even); + // Rows 12 high from 806 down, then a paragraph's line 15 below. + writer.table({ widths: [20], fixed: true, align: 'left', rows: rows(count) }); + writer.paragraph([{ text: 'Zeile', style }]); + const pages = writer.finish(); + return [pages.length, texts(pages.at(-1)!).at(-1)!.split('|')[1]]; + }; + // 806 - 62 × 12 = 62: the line at 47; 806 - 63 × 12 = 50: at 35 it would end below 36. + expect(at(62)).toEqual([1, '47.00']); + expect(at(63)).toEqual([2, '791.00']); + }); + + it('writes a tab as a space and a character Helvetica has not got as "?"', () => { + expect(fonts.clean('a\tb → ü€')).toBe('a b ? ü€'); + }); +}); diff --git a/tools/java-oracle/README.md b/tools/java-oracle/README.md index 794a075..81046dd 100644 --- a/tools/java-oracle/README.md +++ b/tools/java-oracle/README.md @@ -1731,3 +1731,53 @@ Gemessen (04.10.2026): Falle der Sonde: Das Druckpanel nimmt Javas Geräte-Etiketten aus der Oberfläche (eine Swing-Komponente hat nur einen Elternteil); erst `updateViewport` legt sie zurück. + +### Dokumentation: „Report“ (F4.8d) + +`ReportRun` öffnet ein Projekt wie Javas Menü, lässt es auf Wunsch eine +Weile laufen (alle Knoten `starten`, dann `beenden`; der Lauscher behält die +Rahmen wie nach einer Simulation) und schreibt mit +`ReportGenerator.generateReport` Javas PDF. Das liest es mit iTexts eigenem +Parser zurück: jedes Textstück mit Ort, Schrift, Größe (aus dem privaten +Grafikzustand per Reflection) und Farbe, jedes Bild mit Ort und Größe, Titel +und Ersteller. Drei Projekte (`einfaches_rechnernetz_komplett` nach 3 s +Lauf, `Internet_Komplett_…_DE`, die Fixture `documentation.fls`) und ein +leeres (`packages/editor/test/report.java.json`). Mit `--read` liest es ein +beliebiges PDF allein, mit SHA-256: so liest Javas iText den Bericht des +Editors (`report.ours.java.json`). + +Gemessen (04.10.2026): + +* A4, 36 Rand; Titel Helvetica-Bold 18 in (30, 50, 120), mittig; darunter + der Pfad in Helvetica 8; „1. Übersicht“ mit Javas Bild in Seitenbreite, + eine halbe Zeile unter der Überschrift; neue Seite „2. Komponenten“; neue + Seite „3. Datenaustausch“, nur wenn der Lauscher Rahmen hat. +* Überschriften Helvetica-Bold 14/12/10 in Dunkelgrau (64), Ebene 1 und 2 + nummeriert („2.1. “), Ebene 3 nicht. Zeilenabstand das 1,5-Fache der + Schrift; lose Textstücke (`Chunk`) laufen in derselben Zeile mit dem + Abstand des letzten Absatzes, bis `Chunk.NEWLINE` sie beendet. +* Tabellen: 80 % der Breite, links, Spalten im Verhältnis (180:360, + 3 × 180, 180:60:260, 4 × 180); Zellen mit 2 Innenabstand, Zeilen so weit + auseinander wie die Schrift groß ist; eine Zeile, die unter den Rand + reicht, beginnt die nächste Seite (ohne Kopfzeile). Datenaustausch: feste + Spalten 20/60/80/80/40/50/180, mittig, Helvetica 8, Kopf hellblau (230, + 240, 255), jede zweite Zeile grau (240). +* Je Gerät mit Karten (nicht Switch, nicht Modem): Gateway, DNS-Server, bei + Rechnern „DHCP zur Konfiguration verwenden“ als `true`/`false`; Karten; + bei Rechnern „Installiert: “ und die Programme (oder „-“), in der + Reihenfolge einer HashMap; mit DNS-Server dessen Einträge; + Weiterleitungstabelle (nur Zeilen mit einer Adresse als Ziel); beim + Heimrouter die Portweiterleitung, wenn eine Zeile ein bekanntes Protokoll + hat. Datenaustausch je Karte mit Rahmen („Name - Adresse“), die Zeilen + von `Lauscher.getDaten(id, true, 0)`, in der Reihenfolge einer HashMap. +* Leeres Projekt: Titel ohne Namen, kein Pfad; das leere 20 × 35-Bild wird + auf Seitenbreite 915 hoch und läuft über den Rand einer eigenen Seite. +* Java-Fehler am Rande: der Bericht schreibt die Protokolle der + Portweiterleitung („6“ → „TCP“) ins Modell zurück und gibt eine + Debug-Zeile auf der Konsole aus. + +Fallen der Sonde: iText legt Absätze und Tabellen in eigene Ebenen, die +Zeichenreihenfolge im PDF ist darum nicht die der Seite (der Test vergleicht +nach Ort). Die Uhrzeiten des Datenaustauschs sind Javas Wanduhr; der Test +nimmt Javas Zeilen aus Javas Seiten, damit der Satz verglichen wird, nicht +der Lauf. diff --git a/tools/java-oracle/run.sh b/tools/java-oracle/run.sh index 044266a..a45e425 100755 --- a/tools/java-oracle/run.sh +++ b/tools/java-oracle/run.sh @@ -21,7 +21,7 @@ if [ ! -f "$upstream/target/filius.jar" ]; then fi classpath="$upstream/target/filius.jar:$upstream/target/lib/*" mkdir -p "$here/.build" -javac -encoding UTF-8 -d "$here/.build" -cp "$classpath" "$here/src/FlsOracle.java" "$here/src/GetterDefaults.java" "$here/src/IpCheckCases.java" "$here/src/DnsHostsCases.java" "$here/src/EmailFileCases.java" "$here/src/BeansDump.java" "$here/src/Base64Cases.java" "$here/src/ScenarioNetwork.java" "$here/src/DhcpRun.java" "$here/src/TcpRun.java" "$here/src/DnsRun.java" "$here/src/ArpRun.java" "$here/src/RipRun.java" "$here/src/NatRun.java" "$here/src/WlanRun.java" "$here/src/ExampleRun.java" "$here/src/EchoRun.java" "$here/src/WebRun.java" "$here/src/RouterWebRun.java" "$here/src/KonfigCases.java" "$here/src/EmailRun.java" "$here/src/MailCases.java" "$here/src/EmailClientRun.java" "$here/src/TerminalCases.java" "$here/src/TerminalRun.java" "$here/src/FileCases.java" "$here/src/GnutellaRun.java" "$here/src/NewDeviceRun.java" "$here/src/SheetRun.java" "$here/src/TerminalWindowRun.java" "$here/src/InstallRun.java" "$here/src/BrowserWindowRun.java" "$here/src/MailWindowRun.java" "$here/src/SaveAfterRunRun.java" "$here/src/TextEditorWindowRun.java" "$here/src/FileExplorerWindowRun.java" "$here/src/EchoWindowRun.java" "$here/src/DnsWindowRun.java" "$here/src/FirewallWindowRun.java" "$here/src/GnutellaWindowRun.java" "$here/src/ViewersRun.java" "$here/src/ExchangeWindowRun.java" "$here/src/DocuRun.java" "$here/src/ExportRun.java" +javac -encoding UTF-8 -d "$here/.build" -cp "$classpath" "$here/src/FlsOracle.java" "$here/src/GetterDefaults.java" "$here/src/IpCheckCases.java" "$here/src/DnsHostsCases.java" "$here/src/EmailFileCases.java" "$here/src/BeansDump.java" "$here/src/Base64Cases.java" "$here/src/ScenarioNetwork.java" "$here/src/DhcpRun.java" "$here/src/TcpRun.java" "$here/src/DnsRun.java" "$here/src/ArpRun.java" "$here/src/RipRun.java" "$here/src/NatRun.java" "$here/src/WlanRun.java" "$here/src/ExampleRun.java" "$here/src/EchoRun.java" "$here/src/WebRun.java" "$here/src/RouterWebRun.java" "$here/src/KonfigCases.java" "$here/src/EmailRun.java" "$here/src/MailCases.java" "$here/src/EmailClientRun.java" "$here/src/TerminalCases.java" "$here/src/TerminalRun.java" "$here/src/FileCases.java" "$here/src/GnutellaRun.java" "$here/src/NewDeviceRun.java" "$here/src/SheetRun.java" "$here/src/TerminalWindowRun.java" "$here/src/InstallRun.java" "$here/src/BrowserWindowRun.java" "$here/src/MailWindowRun.java" "$here/src/SaveAfterRunRun.java" "$here/src/TextEditorWindowRun.java" "$here/src/FileExplorerWindowRun.java" "$here/src/EchoWindowRun.java" "$here/src/DnsWindowRun.java" "$here/src/FirewallWindowRun.java" "$here/src/GnutellaWindowRun.java" "$here/src/ViewersRun.java" "$here/src/ExchangeWindowRun.java" "$here/src/DocuRun.java" "$here/src/ExportRun.java" "$here/src/ReportRun.java" # FILIUS writes its settings below $HOME; keep them out of the real one. mkdir -p "$here/.build/home" # Removed first: a crashed run must not leave the previous result standing. @@ -510,6 +510,24 @@ HOME="$here/.build/home" xvfb-run -a java -Duser.language=de -Duser.country=DE - "$root/packages/doc/test/fixtures/documentation.fls" "$upstream/beispiele/modem_beispiel.fls" 2>&1 | grep -v 'logback\|^$\|^\s*at ' || true test -s "$output" +# FILIUS' „Report“ (ReportRun): the PDF Java writes of three projects (one run +# for 3 s, its packet log in it) and an empty one, read back with iText — +# every piece of text with its place, font, size and colour +# (packages/editor/test/report.test.ts). Then the editor's own report, which +# that test writes with UPDATE_REPORT=1, read back the same way, with its SHA-256. +output="$root/packages/editor/test/report.java.json" +rm -f "$output" +HOME="$here/.build/home" xvfb-run -a java -Duser.language=de -Duser.country=DE -cp "$classpath:$here/.build" ReportRun \ + "$output" "$here/.build/report" "$upstream/beispiele/einfaches_rechnernetz_komplett.fls:3000" \ + "$upstream/beispiele/Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls" \ + "$root/packages/doc/test/fixtures/documentation.fls" 2>&1 | grep -v 'logback\|^$\|^\s*at \|^TCP ' || true +test -s "$output" +(cd "$root" && UPDATE_REPORT=1 npx vitest run packages/editor/test/report.test.ts >/dev/null 2>&1 || true) +output="$root/packages/editor/test/report.ours.java.json" +rm -f "$output" +HOME="$here/.build/home" java -cp "$classpath:$here/.build" ReportRun --read "$output" "$here/.build/report-ours.pdf" 2>&1 | grep -v 'logback\|^$' || true +test -s "$output" + # FILIUS' own examples as Java FILIUS runs them, opened and started as FILIUS # does (ExampleRun): the acceptance of F2 (packages/fls/test/examplesJava.test.ts) # and the classics of F3 (web, email, gnutella; packages/fls/test/classicsJava.test.ts). diff --git a/tools/java-oracle/src/ReportRun.java b/tools/java-oracle/src/ReportRun.java new file mode 100644 index 0000000..ab4021b --- /dev/null +++ b/tools/java-oracle/src/ReportRun.java @@ -0,0 +1,237 @@ +// FILIUS' „Report“ in the documentation mode measured (ReportGenerator): +// each project opened as the menu opens it, run for a while when asked (its +// frames in FILIUS' packet log, the Lauscher, as after a simulation), then +// the PDF Java writes, read back with iText's own parser: its pages and +// their size, every piece of text with its place, font, size and colour, +// every image with its place and size, the document's title and creator; +// and what the report was made of (the Lauscher's cards, the nodes' cards). +// An empty project too (no file). The reference for the editor's report +// (packages/editor/test/report.test.ts). +// +// Usage: java -cp filius.jar:lib/*:classes ReportRun [:]... +// java -cp filius.jar:lib/*:classes ReportRun --read ... (a PDF read back alone, with its SHA-256) + +import com.itextpdf.text.BaseColor; +import com.itextpdf.text.pdf.PdfReader; +import com.itextpdf.text.pdf.parser.GraphicsState; +import com.itextpdf.text.pdf.parser.ImageRenderInfo; +import com.itextpdf.text.pdf.parser.Matrix; +import com.itextpdf.text.pdf.parser.PdfReaderContentParser; +import com.itextpdf.text.pdf.parser.RenderListener; +import com.itextpdf.text.pdf.parser.TextRenderInfo; +import com.itextpdf.text.pdf.parser.Vector; +import filius.gui.GUIContainer; +import filius.gui.documentation.ReportGenerator; +import filius.gui.netzwerksicht.GUIKnotenItem; +import filius.hardware.NetzwerkInterface; +import filius.hardware.knoten.InternetKnoten; +import filius.rahmenprogramm.Information; +import filius.rahmenprogramm.SzenarioVerwaltung; +import filius.rahmenprogramm.nachrichten.Lauscher; + +import java.io.File; +import java.io.FileOutputStream; +import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.swing.SwingUtilities; + +public class ReportRun { + static float round(float value) { + return Math.round(value * 100) / 100f; + } + + static String colour(BaseColor color) { + return color == null ? null : color.getRed() + "," + color.getGreen() + "," + color.getBlue(); + } + + /** Every piece of text and every image of a page, in the order the page draws them. */ + static class Listener implements RenderListener { + final List texts = new ArrayList<>(); + final List images = new ArrayList<>(); + + public void beginTextBlock() {} + + public void endTextBlock() {} + + public void renderText(TextRenderInfo info) { + // Spaces alone (iText writes the ends of lines and Chunk.NEWLINE so) carry nothing. + if (info.getText().trim().isEmpty()) return; + try { + Field field = TextRenderInfo.class.getDeclaredField("gs"); + field.setAccessible(true); + GraphicsState state = (GraphicsState) field.get(info); + Vector start = info.getBaseline().getStartPoint(); + // x|y|font|size|colour|text, one string a piece, so that the file stays small. + texts.add(round(start.get(Vector.I1)) + "|" + round(start.get(Vector.I2)) + "|" + info.getFont().getPostscriptFontName() + "|" + + round(state.getFontSize()) + "|" + colour(info.getFillColor()) + "|" + info.getText()); + } catch (ReflectiveOperationException error) { + throw new IllegalStateException(error); + } + } + + public void renderImage(ImageRenderInfo info) { + Matrix matrix = info.getImageCTM(); + Map image = new LinkedHashMap<>(); + image.put("x", round(matrix.get(Matrix.I31))); + image.put("y", round(matrix.get(Matrix.I32))); + image.put("width", round(matrix.get(Matrix.I11))); + image.put("height", round(matrix.get(Matrix.I22))); + try { + image.put("pixels", List.of(info.getImage().getBufferedImage().getWidth(), info.getImage().getBufferedImage().getHeight())); + } catch (Exception error) { + image.put("pixels", null); + } + images.add(image); + } + } + + static Map read(String pdf) throws Exception { + Map result = new LinkedHashMap<>(); + PdfReader reader = new PdfReader(pdf); + Map info = reader.getInfo(); + result.put("title", info.get("Title")); + result.put("creator", info.get("Creator")); + List pages = new ArrayList<>(); + PdfReaderContentParser parser = new PdfReaderContentParser(reader); + for (int number = 1; number <= reader.getNumberOfPages(); number++) { + Listener listener = parser.processContent(number, new Listener()); + Map page = new LinkedHashMap<>(); + page.put("size", List.of(round(reader.getPageSize(number).getWidth()), round(reader.getPageSize(number).getHeight()))); + page.put("texts", listener.texts); + page.put("images", listener.images); + pages.add(page); + } + result.put("pages", pages); + reader.close(); + return result; + } + + static Map measure(String name, File pdfFolder) throws Exception { + Map result = new LinkedHashMap<>(); + // What the report is made of: the Lauscher's cards and every card of the nodes. + List packetLogCards = new ArrayList<>(); + for (String id : Lauscher.getLauscher().getInterfaceIDs()) { + Map card = new LinkedHashMap<>(); + card.put("mac", id); + card.put("rows", Lauscher.getLauscher().getDaten(id, true, 0).length); + packetLogCards.add(card); + } + result.put("packetLogCards", packetLogCards); + List nodes = new ArrayList<>(); + for (GUIKnotenItem item : GUIContainer.getGUIContainer().getKnotenItems()) { + Map node = new LinkedHashMap<>(); + node.put("name", item.getKnoten().holeAnzeigeName()); + node.put("type", item.getKnoten().getClass().getSimpleName()); + List macs = new ArrayList<>(); + if (item.getKnoten() instanceof InternetKnoten) { + for (NetzwerkInterface nic : ((InternetKnoten) item.getKnoten()).getNetzwerkInterfaces()) macs.add(nic.getMac()); + } + node.put("macs", macs); + nodes.add(node); + } + result.put("nodes", nodes); + String pdf = new File(pdfFolder, name.replace(".fls", "") + ".pdf").getPath(); + ReportGenerator.getInstance().generateReport(pdf); + result.put("pdf", read(pdf)); + return result; + } + + public static void main(String[] args) throws Exception { + // FILIUS' window keeps the JVM alive: end it on any failure too. + try { + run(args); + } catch (Throwable error) { + error.printStackTrace(); + System.exit(1); + } + System.exit(0); + } + + interface Step { + void run() throws Exception; + } + + static void onEdt(Step step) throws Exception { + Exception[] failed = new Exception[1]; + SwingUtilities.invokeAndWait(() -> { + try { + step.run(); + } catch (Exception error) { + failed[0] = error; + } + }); + if (failed[0] != null) throw failed[0]; + } + + static void run(String[] args) throws Exception { + if (args[0].equals("--read")) { + Map read = new LinkedHashMap<>(); + for (int index = 2; index < args.length; index++) { + Map pdf = read(args[index]); + byte[] digest = java.security.MessageDigest.getInstance("SHA-256").digest(java.nio.file.Files.readAllBytes(Path.of(args[index]))); + StringBuilder hex = new StringBuilder(); + for (byte each : digest) hex.append(String.format("%02x", each)); + pdf.put("sha256", hex.toString()); + read.put(Path.of(args[index]).getFileName().toString(), pdf); + } + try (FileOutputStream out = new FileOutputStream(args[1])) { + out.write((FlsOracle.Json.write(read, "") + "\n").getBytes(StandardCharsets.UTF_8)); + } + return; + } + GUIContainer.getGUIContainer(); + File pdfFolder = new File(args[1]); + pdfFolder.mkdirs(); + Map output = new LinkedHashMap<>(); + Map projects = new LinkedHashMap<>(); + for (int index = 2; index < args.length; index++) { + String[] parts = args[index].split(":"); + String file = parts[0]; + long runFor = parts.length > 1 ? Long.parseLong(parts[1]) : 0; + String name = Path.of(file).getFileName().toString(); + onEdt(() -> { + // As GUIMainMenu opens a file; the packet log starts empty, as after Lauscher.reset. + Information.getInformation().reset(); + Lauscher.getLauscher().reset(); + SzenarioVerwaltung.getInstance().laden(file, GUIContainer.getGUIContainer().getKnotenItems(), + GUIContainer.getGUIContainer().getCableItems(), GUIContainer.getGUIContainer().getDocuItems()); + GUIContainer.getGUIContainer().setProperty(null); + GUIContainer.getGUIContainer().updateViewport(); + GUIContainer.getGUIContainer().updateCables(); + }); + if (runFor > 0) { + // As GUIMainMenu.selectMode starts and ends a simulation: every node in the window's order. + for (GUIKnotenItem item : GUIContainer.getGUIContainer().getKnotenItems()) item.getKnoten().getSystemSoftware().starten(); + Thread.sleep(runFor); + for (GUIKnotenItem item : GUIContainer.getGUIContainer().getKnotenItems()) item.getKnoten().getSystemSoftware().beenden(); + Thread.sleep(500); + } + Map[] measured = new Map[1]; + onEdt(() -> measured[0] = measure(name, pdfFolder)); + projects.put(name, measured[0]); + } + output.put("projects", projects); + + Map[] empty = new Map[1]; + onEdt(() -> { + GUIContainer container = GUIContainer.getGUIContainer(); + container.getKnotenItems().clear(); + container.getCableItems().clear(); + container.getDocuItems().clear(); + SzenarioVerwaltung.getInstance().reset(); + Lauscher.getLauscher().reset(); + container.updateViewport(); + empty[0] = measure("empty.fls", pdfFolder); + }); + output.put("empty", empty[0]); + + try (FileOutputStream out = new FileOutputStream(args[0])) { + out.write((FlsOracle.Json.write(output, "") + "\n").getBytes(StandardCharsets.UTF_8)); + } + } +}