Web-M1-Ausbau: JSON-Gaesteliste, GA-Verlauf, Python-Serversteuerung, tische.ini-Upload
- bestellung.xml -> bestellung.json: neuer JSONConfig (loest XMLConfig ab), alle work-Beispiele konvertiert, Doku (CLAUDE/README/dateiformate) umgestellt - ga.py: Beobachtungsobjekt Entwicklung zeichnet den Loesungsverlauf auf, neuer Schalter --show-development erzeugt Entwicklung.svg (beste/mittlere/ schlechteste Wertigkeit ueber die Zyklus-Aktionen) - web/main.py: neuer Endpunkt /tische-datei (tische.ini-Upload, ast.literal_eval), Frontend kann jetzt eine tische.ini laden - libs/webserver.py: plattformunabhaengige start/stop/status-Steuerung der Web-Testinstanz (ersetzt run_web_helper.ps1), raeumt auch verwaiste --reload-Prozessbaeume zuverlaessig auf - Sicherheit/Modernisierung: eval() -> ast.literal_eval in Tische/Strafliste, sicherer Mini-Auswerter fuer die String-Ausdruecke in zyklus.cfg, defaultdict(set) in Plaetze - SVG: Tischnummer fett zentriert im Tischkreis statt "Tisch x" darueber - Tests: JSONConfig, Entwicklung und der Zyklus-Auswerter abgedeckt (9 Tests) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@@ -62,10 +62,11 @@ receives the output files — e.g. `work/test1/`, `work/test2/`, or any new fold
|
|||||||
the same layout:
|
the same layout:
|
||||||
- `tische.ini` — table definitions: id, `Nummer`, `Hof` (venue/court), `Plaetze` (seats),
|
- `tische.ini` — table definitions: id, `Nummer`, `Hof` (venue/court), `Plaetze` (seats),
|
||||||
`Nachbarliste` (neighbor table ids), `Koordinaten`.
|
`Nachbarliste` (neighbor table ids), `Koordinaten`.
|
||||||
- `bestellung.xml` — the guest order: `<Gruppe>` blocks containing `<Person>` (with
|
- `bestellung.json` — the guest order: `{ "gruppen": [ ... ] }`, each group holding a
|
||||||
`Vorname`/`Nachname`/optional `Titel`) and an `<Anzahl>` (reservation count per person
|
`"personen"` list (each with `vorname`/`nachname`/optional `titel`), an optional
|
||||||
template — this expands into that many identical bookings), plus optional `<Tisch>` to
|
`"anzahl"` (reservation count — expands every person in the group into that many identical
|
||||||
pin a VIP group to a specific table.
|
bookings), an optional `"name"` (display label), and an optional `"tisch"` to pin a VIP
|
||||||
|
group to a specific table. Replaces the old `bestellung.xml`/`XMLConfig`.
|
||||||
- Output (written back into the same `--indir` directory): `TischePersonen.txt` (table →
|
- Output (written back into the same `--indir` directory): `TischePersonen.txt` (table →
|
||||||
seated people) and `PersonenTische.csv` (person → table, sorted).
|
seated people) and `PersonenTische.csv` (person → table, sorted).
|
||||||
|
|
||||||
@@ -78,7 +79,7 @@ GA cycle/penalty config:
|
|||||||
tables (by group size and number of splits), cost of a lone person, and per-table
|
tables (by group size and number of splits), cost of a lone person, and per-table
|
||||||
under-utilization penalties.
|
under-utilization penalties.
|
||||||
|
|
||||||
`tische.ini`/`bestellung.xml`/`TischePersonen.txt`/`PersonenTische.csv` are fixed filenames
|
`tische.ini`/`bestellung.json`/`TischePersonen.txt`/`PersonenTische.csv` are fixed filenames
|
||||||
resolved as `os.path.join(indir, ...)` in `platz.py` — they are no longer configured in
|
resolved as `os.path.join(indir, ...)` in `platz.py` — they are no longer configured in
|
||||||
`platz.cfg`.
|
`platz.cfg`.
|
||||||
|
|
||||||
@@ -130,10 +131,12 @@ Domain-agnostic and reusable in principle:
|
|||||||
touching, people as colored circles (color = group, via `SVGGruppenFarben`) placed evenly
|
touching, people as colored circles (color = group, via `SVGGruppenFarben`) placed evenly
|
||||||
around the inside of their table's circle. The table-to-table grid spacing is derived
|
around the inside of their table's circle. The table-to-table grid spacing is derived
|
||||||
from the largest table radius so tables never overlap regardless of their `Koordinaten`.
|
from the largest table radius so tables never overlap regardless of their `Koordinaten`.
|
||||||
- `XMLConfig` — parses `bestellung.xml` into `Personen`/`Gruppen`/VIP-group/VIP-seat-map,
|
- `JSONConfig` — parses `bestellung.json` into
|
||||||
expanding each `<Person>` template by its sibling `<Anzahl>` into that many individual
|
`Personen`/`Gruppen`/VIP-group/VIP-seat-map/group-names, expanding each person by the
|
||||||
bookings, and treating any `<Gruppe>` containing a `<Tisch>` tag as a VIP group pinned to
|
group's `"anzahl"` into that many individual bookings, and treating any group with a
|
||||||
that table rather than going through normal GA placement.
|
`"tisch"` key as a VIP group pinned to that table rather than going through normal GA
|
||||||
|
placement. Returns a 5th element (`GruppenNamen`, `{Gid: display name}`) that the older
|
||||||
|
`XMLConfig` did not; `CSVConfig` (the web CSV adapter) returns the same 5-tuple.
|
||||||
|
|
||||||
### Data flow through `platz.py` (`__main__`)
|
### Data flow through `platz.py` (`__main__`)
|
||||||
1. Parse `--indir` (required) from the command line via `optparse`.
|
1. Parse `--indir` (required) from the command line via `optparse`.
|
||||||
@@ -141,7 +144,8 @@ Domain-agnostic and reusable in principle:
|
|||||||
`os.path.expandvars`).
|
`os.path.expandvars`).
|
||||||
3. Load `Zyklus` (GA schedule), `Strafliste` (penalties), `Tische` (table layout, from
|
3. Load `Zyklus` (GA schedule), `Strafliste` (penalties), `Tische` (table layout, from
|
||||||
`<indir>/tische.ini`).
|
`<indir>/tische.ini`).
|
||||||
4. Load `<indir>/bestellung.xml` via `XMLConfig` → people, groups, VIP group, VIP seat map.
|
4. Load `<indir>/bestellung.json` via `JSONConfig` → people, groups, VIP group, VIP seat
|
||||||
|
map, group names.
|
||||||
5. Build a `Farm(Zyklus, Sitzplatzverteilung, Tische=..., Gruppen=..., Strafen=...,
|
5. Build a `Farm(Zyklus, Sitzplatzverteilung, Tische=..., Gruppen=..., Strafen=...,
|
||||||
VIPListe=..., VIPs=...)`, which runs the whole GA cycle in its constructor.
|
VIPListe=..., VIPs=...)`, which runs the whole GA cycle in its constructor.
|
||||||
6. Take `Farm.Bester()` and call `.speichern(...)` to write `<indir>/TischePersonen.txt` and
|
6. Take `Farm.Bester()` and call `.speichern(...)` to write `<indir>/TischePersonen.txt` and
|
||||||
|
|||||||
@@ -23,9 +23,10 @@ platz/
|
|||||||
```
|
```
|
||||||
|
|
||||||
- `libs/platz.py` — entry point; wires together config, input data, and the GA run.
|
- `libs/platz.py` — entry point; wires together config, input data, and the GA run.
|
||||||
- `libs/ga.py` — generic genetic-algorithm scaffolding (`Loesung`, `Zyklus`, `Farm`).
|
- `libs/ga.py` — generic genetic-algorithm scaffolding (`Loesung`, `Zyklus`, `Farm`,
|
||||||
|
`Entwicklung`).
|
||||||
- `libs/Strukturdaten.py` — domain model for the seating problem (`Person`, `Gruppe`,
|
- `libs/Strukturdaten.py` — domain model for the seating problem (`Person`, `Gruppe`,
|
||||||
`Tisch`, `Strafliste`, `Sitzplatzverteilung`, `XMLConfig`).
|
`Tisch`, `Strafliste`, `Sitzplatzverteilung`, `JSONConfig`).
|
||||||
|
|
||||||
## Running the tests
|
## Running the tests
|
||||||
|
|
||||||
@@ -89,13 +90,13 @@ receiving the output files for one run — e.g. `work/test1/` or `work/test2/`:
|
|||||||
|
|
||||||
- `tische.ini` — one section per table: `Nummer`, `Hof` (venue/court), `Plaetze` (seat
|
- `tische.ini` — one section per table: `Nummer`, `Hof` (venue/court), `Plaetze` (seat
|
||||||
count), `Nachbarliste` (neighboring table ids), `Koordinaten`.
|
count), `Nachbarliste` (neighboring table ids), `Koordinaten`.
|
||||||
- `bestellung.xml` — `<Gruppe>` blocks, each with a `<Person>` template
|
- `bestellung.json` — `{ "gruppen": [ ... ] }`, each group with a `"personen"` list
|
||||||
(`Vorname`/`Nachname`/optional `Titel`) and an `<Anzahl>` (how many bookings to expand
|
(`vorname`/`nachname`/optional `titel`), an optional `"anzahl"` (how many bookings to
|
||||||
that template into). A `<Gruppe>` containing a `<Tisch>` tag is treated as a VIP group
|
expand each person into), an optional `"name"` (display label) and an optional `"tisch"`
|
||||||
pinned to that table instead of being placed by the GA.
|
(pins the group as a VIP group to that table instead of placing it via the GA).
|
||||||
|
|
||||||
To run against a different dataset, create a new folder with a `tische.ini` and
|
To run against a different dataset, create a new folder with a `tische.ini` and
|
||||||
`bestellung.xml` following the same layout and pass it via `--indir`.
|
`bestellung.json` following the same layout and pass it via `--indir`.
|
||||||
|
|
||||||
`cfg/platz.cfg` still selects the GA cycle/penalty config (independent of `--indir`):
|
`cfg/platz.cfg` still selects the GA cycle/penalty config (independent of `--indir`):
|
||||||
|
|
||||||
|
|||||||
@@ -3,74 +3,25 @@ REM ================================================================
|
|||||||
REM Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
REM Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
||||||
REM
|
REM
|
||||||
REM run_web.bat start - startet den Server im Hintergrund
|
REM run_web.bat start - startet den Server im Hintergrund
|
||||||
REM run_web.bat stop - beendet den Server (inkl. Reload-Kindprozesse)
|
REM run_web.bat stop - beendet den Server
|
||||||
REM run_web.bat status - zeigt ob und unter welcher PID er laeuft
|
REM run_web.bat status - zeigt ob und unter welcher PID er laeuft
|
||||||
REM run_web.bat - startet im Vordergrund (Strg+C zum Beenden)
|
REM run_web.bat - startet im Vordergrund mit Auto-Reload
|
||||||
|
REM (Strg+C zum Beenden)
|
||||||
REM
|
REM
|
||||||
REM http://localhost:8000 Testoberflaeche
|
REM http://localhost:8000 Testoberflaeche
|
||||||
REM http://localhost:8000/docs interaktive API-Doku (Swagger)
|
REM http://localhost:8000/docs interaktive API-Doku (Swagger)
|
||||||
REM
|
REM
|
||||||
REM Die Prozess-/Portlogik liegt in run_web_helper.ps1 (cmd-Escaping
|
REM Die eigentliche Prozessverwaltung liegt plattformunabhaengig in
|
||||||
REM von mehrzeiligen PowerShell-Kommandos ist zu fehleranfaellig).
|
REM libs/webserver.py (laeuft unverandert auch unter Linux).
|
||||||
REM ================================================================
|
REM ================================================================
|
||||||
|
|
||||||
call "%~dp0setenv.bat" > nul
|
call "%~dp0setenv.bat" > nul
|
||||||
|
|
||||||
set WEB_PORT=8000
|
if not exist "%PLATZ%\.venv\Scripts\activate.bat" (
|
||||||
set HELFER=powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0run_web_helper.ps1"
|
echo FEHLER: kein .venv gefunden - bitte zuerst bin\install_py.bat ausfuehren
|
||||||
|
|
||||||
if /I "%~1"=="start" goto :start
|
|
||||||
if /I "%~1"=="stop" goto :stop
|
|
||||||
if /I "%~1"=="status" goto :status
|
|
||||||
if "%~1"=="" goto :vordergrund
|
|
||||||
echo Unbekannter Parameter "%~1" - erlaubt: start ^| stop ^| status
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
REM ----------------------------------------------------------------
|
|
||||||
:vordergrund
|
|
||||||
call :venv_pruefen || exit /b 1
|
|
||||||
echo Starte Web-Testinstanz im Vordergrund (Strg+C zum Beenden) ...
|
|
||||||
python -m uvicorn main:app --reload --app-dir "%PLATZ%\web" --port %WEB_PORT%
|
|
||||||
exit /b %errorlevel%
|
|
||||||
|
|
||||||
REM ----------------------------------------------------------------
|
|
||||||
:start
|
|
||||||
call :venv_pruefen || exit /b 1
|
|
||||||
%HELFER% check %WEB_PORT%
|
|
||||||
if not errorlevel 1 (
|
|
||||||
echo Server laeuft bereits auf Port %WEB_PORT% - erst "run_web.bat stop".
|
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
if not exist "%PLATZ%\log" mkdir "%PLATZ%\log"
|
call "%PLATZ%\.venv\Scripts\activate.bat"
|
||||||
echo Starte Web-Testinstanz im Hintergrund ...
|
|
||||||
start "platz-web" /MIN cmd /c "call "%~dp0setenv.bat" > nul && call "%PLATZ%\.venv\Scripts\activate.bat" && python -m uvicorn main:app --reload --app-dir "%PLATZ%\web" --port %WEB_PORT% > "%PLATZ%\log\run_web.log" 2>&1"
|
|
||||||
REM kurz warten und pruefen, ob der Server wirklich hochkommt
|
|
||||||
REM (ping statt timeout: funktioniert auch ohne interaktive Konsole)
|
|
||||||
ping -n 4 127.0.0.1 > nul
|
|
||||||
%HELFER% check %WEB_PORT%
|
|
||||||
if errorlevel 1 (
|
|
||||||
echo FEHLER: Server ist nicht gestartet - siehe %PLATZ%\log\run_web.log
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo Server laeuft: http://localhost:%WEB_PORT% ^(Logdatei: log\run_web.log^)
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
REM ----------------------------------------------------------------
|
python "%PLATZ_LIBS%\webserver.py" %*
|
||||||
:stop
|
|
||||||
echo Beende alle uvicorn-Prozesse dieses Projekts auf Port %WEB_PORT% ...
|
|
||||||
%HELFER% stop %WEB_PORT%
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
REM ----------------------------------------------------------------
|
|
||||||
:status
|
|
||||||
%HELFER% status %WEB_PORT%
|
|
||||||
exit /b %errorlevel%
|
exit /b %errorlevel%
|
||||||
|
|
||||||
REM ----------------------------------------------------------------
|
|
||||||
:venv_pruefen
|
|
||||||
if exist "%PLATZ%\.venv\Scripts\activate.bat" (
|
|
||||||
call "%PLATZ%\.venv\Scripts\activate.bat"
|
|
||||||
exit /b 0
|
|
||||||
)
|
|
||||||
echo FEHLER: kein .venv gefunden - bitte zuerst bin\install_py.bat ausfuehren
|
|
||||||
exit /b 1
|
|
||||||
|
|||||||
@@ -3,93 +3,24 @@
|
|||||||
# Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
# Verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn, M1)
|
||||||
#
|
#
|
||||||
# run_web.sh start - startet den Server im Hintergrund
|
# run_web.sh start - startet den Server im Hintergrund
|
||||||
# run_web.sh stop - beendet den Server (inkl. Reload-Kindprozesse)
|
# run_web.sh stop - beendet den Server
|
||||||
# run_web.sh status - zeigt ob und unter welcher PID er laeuft
|
# run_web.sh status - zeigt ob und unter welcher PID er laeuft
|
||||||
# run_web.sh - startet im Vordergrund (Strg+C zum Beenden)
|
# run_web.sh - startet im Vordergrund mit Auto-Reload
|
||||||
|
# (Strg+C zum Beenden)
|
||||||
#
|
#
|
||||||
# http://localhost:8000 Testoberflaeche
|
# http://localhost:8000 Testoberflaeche
|
||||||
# http://localhost:8000/docs interaktive API-Doku (Swagger)
|
# http://localhost:8000/docs interaktive API-Doku (Swagger)
|
||||||
|
#
|
||||||
|
# Die eigentliche Prozessverwaltung liegt plattformunabhaengig in
|
||||||
|
# libs/webserver.py (laeuft unveraendert auch unter Windows).
|
||||||
# ================================================================
|
# ================================================================
|
||||||
|
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")/setenv.sh" > /dev/null
|
source "$(dirname "${BASH_SOURCE[0]}")/setenv.sh" > /dev/null
|
||||||
|
|
||||||
WEB_PORT=8000
|
if [ ! -f "$PLATZ/.venv/bin/activate" ]; then
|
||||||
PIDDATEI="$PLATZ/log/run_web.pid"
|
echo "FEHLER: kein .venv gefunden - bitte zuerst bin/install_py.sh ausfuehren"
|
||||||
LOGDATEI="$PLATZ/log/run_web.log"
|
exit 1
|
||||||
|
fi
|
||||||
|
source "$PLATZ/.venv/bin/activate"
|
||||||
|
|
||||||
venv_pruefen() {
|
exec python "$PLATZ_LIBS/webserver.py" "$@"
|
||||||
if [ -f "$PLATZ/.venv/bin/activate" ]; then
|
|
||||||
source "$PLATZ/.venv/bin/activate"
|
|
||||||
else
|
|
||||||
echo "FEHLER: kein .venv gefunden - bitte zuerst bin/install_py.sh ausfuehren"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
lauft_pid() {
|
|
||||||
# gibt die PID des Servers aus, wenn er laeuft (Rueckgabe 0), sonst 1
|
|
||||||
if [ -f "$PIDDATEI" ]; then
|
|
||||||
local pid
|
|
||||||
pid=$(cat "$PIDDATEI")
|
|
||||||
if kill -0 "$pid" 2> /dev/null; then
|
|
||||||
echo "$pid"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
rm -f "$PIDDATEI"
|
|
||||||
fi
|
|
||||||
# Fallback: nach dem Prozess suchen (z.B. PID-Datei verloren)
|
|
||||||
pgrep -f "uvicorn main:app.*--port $WEB_PORT" | head -1 && return 0
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
case "${1:-}" in
|
|
||||||
start)
|
|
||||||
venv_pruefen || exit 1
|
|
||||||
if pid=$(lauft_pid); then
|
|
||||||
echo "Server laeuft bereits (PID $pid) - erst 'run_web.sh stop'."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
mkdir -p "$PLATZ/log"
|
|
||||||
echo "Starte Web-Testinstanz im Hintergrund ..."
|
|
||||||
nohup python -m uvicorn main:app --reload \
|
|
||||||
--app-dir "$PLATZ/web" --port "$WEB_PORT" \
|
|
||||||
> "$LOGDATEI" 2>&1 &
|
|
||||||
echo $! > "$PIDDATEI"
|
|
||||||
sleep 3
|
|
||||||
if pid=$(lauft_pid); then
|
|
||||||
echo "Server laeuft: http://localhost:$WEB_PORT (PID $pid, Log: log/run_web.log)"
|
|
||||||
else
|
|
||||||
echo "FEHLER: Server ist nicht gestartet - siehe $LOGDATEI"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
gestoppt=0
|
|
||||||
if pid=$(lauft_pid); then
|
|
||||||
# ganze Prozessgruppe beenden (uvicorn-Reloader + Kindprozesse)
|
|
||||||
pkill -TERM -P "$pid" 2> /dev/null && gestoppt=1
|
|
||||||
kill "$pid" 2> /dev/null && gestoppt=1
|
|
||||||
fi
|
|
||||||
# Nachzuegler, deren Elternprozess schon weg ist
|
|
||||||
pkill -f "uvicorn main:app.*--port $WEB_PORT" 2> /dev/null && gestoppt=1
|
|
||||||
rm -f "$PIDDATEI"
|
|
||||||
if [ "$gestoppt" = "1" ]; then echo "Beendet."; else echo "Es lief nichts."; fi
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
if pid=$(lauft_pid); then
|
|
||||||
echo "LAEUFT: http://localhost:$WEB_PORT (PID $pid)"
|
|
||||||
else
|
|
||||||
echo "GESTOPPT: kein Server auf Port $WEB_PORT"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"")
|
|
||||||
venv_pruefen || exit 1
|
|
||||||
echo "Starte Web-Testinstanz im Vordergrund (Strg+C zum Beenden) ..."
|
|
||||||
exec python -m uvicorn main:app --reload \
|
|
||||||
--app-dir "$PLATZ/web" --port "$WEB_PORT"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unbekannter Parameter '$1' - erlaubt: start | stop | status"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|||||||
@@ -1,86 +0,0 @@
|
|||||||
# ================================================================
|
|
||||||
# PowerShell-Helfer fuer run_web.bat (start/stop/status)
|
|
||||||
# Aufruf: powershell -NoProfile -ExecutionPolicy Bypass
|
|
||||||
# -File run_web_helper.ps1 <status|stop|check> <port>
|
|
||||||
#
|
|
||||||
# "check" liefert nur den Exitcode (0 = Server lauscht, 1 = nicht)
|
|
||||||
# und keine Ausgabe - fuer die Pruefung nach dem Start.
|
|
||||||
#
|
|
||||||
# Verwaiste Socket-Eintraege (Listener, deren Prozess nicht mehr
|
|
||||||
# existiert - passiert nach abgestuerzten Reload-Kindprozessen)
|
|
||||||
# werden ueberall ignoriert.
|
|
||||||
# ================================================================
|
|
||||||
param(
|
|
||||||
[Parameter(Mandatory = $true)][ValidateSet('status', 'stop', 'check')]
|
|
||||||
[string]$Aktion,
|
|
||||||
[int]$Port = 8000
|
|
||||||
)
|
|
||||||
|
|
||||||
function Lebende-Listener([int]$p) {
|
|
||||||
try {
|
|
||||||
Get-NetTCPConnection -LocalPort $p -State Listen -ErrorAction Stop |
|
|
||||||
Where-Object { Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue }
|
|
||||||
} catch { @() }
|
|
||||||
}
|
|
||||||
|
|
||||||
function Uvicorn-Prozesse {
|
|
||||||
Get-CimInstance Win32_Process -Filter "Name like 'python%'" |
|
|
||||||
Where-Object { $_.CommandLine -match 'uvicorn main:app' }
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($Aktion) {
|
|
||||||
|
|
||||||
'check' {
|
|
||||||
if (Lebende-Listener $Port) { exit 0 } else { exit 1 }
|
|
||||||
}
|
|
||||||
|
|
||||||
'status' {
|
|
||||||
$l = Lebende-Listener $Port | Select-Object -First 1
|
|
||||||
if ($l) {
|
|
||||||
"LAEUFT: http://localhost:$Port (Listener-PID $($l.OwningProcess))"
|
|
||||||
foreach ($e in Uvicorn-Prozesse) { " uvicorn-Prozess: PID $($e.ProcessId)" }
|
|
||||||
exit 0
|
|
||||||
} else {
|
|
||||||
"GESTOPPT: kein Server auf Port $Port"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
'stop' {
|
|
||||||
$gefunden = $false
|
|
||||||
$alle = Get-CimInstance Win32_Process -Filter "Name like 'python%'"
|
|
||||||
$reloaderPids = @()
|
|
||||||
foreach ($e in ($alle | Where-Object { $_.CommandLine -match 'uvicorn main:app' })) {
|
|
||||||
$gefunden = $true
|
|
||||||
$reloaderPids += $e.ProcessId
|
|
||||||
# erst die Kindprozesse (Reload-Worker), dann den Reloader selbst
|
|
||||||
$alle | Where-Object { $_.ParentProcessId -eq $e.ProcessId } | ForEach-Object {
|
|
||||||
Stop-Process -Id $_.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
Stop-Process -Id $e.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
# Zombie-Jagd: uvicorn-Reload-Worker sind multiprocessing-Spawn-Kinder
|
|
||||||
# ("spawn_main(parent_pid=N, ...)"). Stirbt ihr Reloader unsanft,
|
|
||||||
# ueberleben sie MIT geerbtem Server-Socket und bedienen den Port
|
|
||||||
# unsichtbar weiter (weder "uvicorn" in der Kommandozeile noch
|
|
||||||
# Eintrag als Socket-Besitzer!). Erkennung: spawn_main-Prozess,
|
|
||||||
# dessen parent_pid tot oder ein eben beendeter Reloader ist.
|
|
||||||
foreach ($k in ($alle | Where-Object { $_.CommandLine -match 'multiprocessing.spawn.*spawn_main' })) {
|
|
||||||
if ($k.CommandLine -match 'parent_pid=(\d+)') {
|
|
||||||
$eltern = [int]$Matches[1]
|
|
||||||
$elternTot = -not (Get-Process -Id $eltern -ErrorAction SilentlyContinue)
|
|
||||||
if ($elternTot -or ($reloaderPids -contains $eltern)) {
|
|
||||||
$gefunden = $true
|
|
||||||
Stop-Process -Id $k.ProcessId -Force -Confirm:$false -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# Nachzuegler: alles Lebende, das den Port noch haelt
|
|
||||||
Lebende-Listener $Port | ForEach-Object {
|
|
||||||
$gefunden = $true
|
|
||||||
Stop-Process -Id $_.OwningProcess -Force -Confirm:$false -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
if ($gefunden) { 'Beendet.' } else { 'Es lief nichts.' }
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,7 @@ Referenz fuer die Eingabe- und Ausgabedateien eines `platz`-Laufs, mit Beispiele
|
|||||||
`work/test1/` und `work/test2/`.
|
`work/test1/` und `work/test2/`.
|
||||||
|
|
||||||
Alle vier Dateien liegen unter dem mit `--indir <dir>` angegebenen Verzeichnis (z.B.
|
Alle vier Dateien liegen unter dem mit `--indir <dir>` angegebenen Verzeichnis (z.B.
|
||||||
`work/test1/` oder `work/test2/`) unter festen Namen: `tische.ini`, `bestellung.xml` als
|
`work/test1/` oder `work/test2/`) unter festen Namen: `tische.ini`, `bestellung.json` als
|
||||||
Eingabe, `TischePersonen.txt` und `PersonenTische.csv` als Ausgabe. Beispielaufruf:
|
Eingabe, `TischePersonen.txt` und `PersonenTische.csv` als Ausgabe. Beispielaufruf:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -67,108 +67,90 @@ Werte wie `Nachbarliste` und `Koordinaten` werden mit `eval()` geladen (siehe
|
|||||||
`Tische.laden()` in `libs/Strukturdaten.py`) — es steht also echter Python-Ausdruckscode im
|
`Tische.laden()` in `libs/Strukturdaten.py`) — es steht also echter Python-Ausdruckscode im
|
||||||
File, keine reine INI-Syntax.
|
File, keine reine INI-Syntax.
|
||||||
|
|
||||||
## Gaesteliste: `bestellung.xml`
|
## Gaesteliste: `bestellung.json`
|
||||||
|
|
||||||
Ein `<Bestellung>` mit mehreren `<Gruppe>`-Bloecken. Jede Gruppe enthaelt:
|
Ein JSON-Objekt mit dem Schluessel `"gruppen"`, einer Liste von Gruppen-Objekten. Jede
|
||||||
|
Gruppe enthaelt:
|
||||||
|
|
||||||
- ein oder mehrere `<Person>`-Elemente mit `<Vorname>`, `<Nachname>` und optionalem
|
- `"personen"`: Liste von Personen-Objekten mit `"vorname"`, `"nachname"` und optionalem
|
||||||
`<Titel>`
|
`"titel"` (Pflicht: Vor- und Nachname)
|
||||||
- optional `<Anzahl>N</Anzahl>`, um die zuletzt beschriebene Person zu einer Sammelbuchung
|
- optional `"name"`: Anzeigename der Gruppe (z.B. `"Familie Huber"`); nur fuer Ausgabe und
|
||||||
von `N` (anonymen/gleichnamigen) Personen zu vervielfaeltigen
|
Web-Anzeige, nicht fuer die Optimierung relevant
|
||||||
- optional `<Tisch>Id</Tisch>`, um die Gruppe als VIP-Gruppe fest an den angegebenen Tisch
|
- optional `"anzahl"`: N, um **jede** Person der Gruppe zu einer Sammelbuchung von N
|
||||||
zu binden (sie wird dann **nicht** vom GA platziert)
|
(gleichnamigen) Buchungen zu vervielfaeltigen — praktisch fuer anonyme Kontingente
|
||||||
|
- optional `"tisch"`: Tisch-Id, um die Gruppe als VIP-Gruppe fest an diesen Tisch zu binden
|
||||||
|
(sie wird dann **nicht** vom GA platziert)
|
||||||
|
|
||||||
XML-Kommentare (`<!-- ... -->`) sind erlaubt und werden beim Parsen ignoriert.
|
Geladen wird das File von `JSONConfig` in `libs/Strukturdaten.py` (Nachfolger des frueheren
|
||||||
|
`XMLConfig`; das alte `bestellung.xml`-Format wurde vollstaendig durch JSON abgeloest).
|
||||||
|
Die Datei sollte UTF-8 sein; ein evtl. vorhandenes BOM (Excel) wird geschluckt.
|
||||||
|
|
||||||
Minimalbeispiel mit Sammelbuchungen, aus `work/test1/bestellung.xml`:
|
Minimalbeispiel mit Sammelbuchungen, aus `work/test1/bestellung.json`:
|
||||||
|
|
||||||
```xml
|
```json
|
||||||
<Bestellung>
|
{
|
||||||
|
"gruppen": [
|
||||||
<Gruppe>
|
{
|
||||||
<Person>
|
"anzahl": 10,
|
||||||
<Vorname>A</Vorname>
|
"personen": [
|
||||||
<Nachname>AA</Nachname>
|
{ "vorname": "A", "nachname": "AA", "titel": "Dipl. Ing." }
|
||||||
<Titel>Dipl. Ing.</Titel>
|
]
|
||||||
</Person>
|
},
|
||||||
<Anzahl>10</Anzahl>
|
{
|
||||||
</Gruppe>
|
"anzahl": 4,
|
||||||
|
"personen": [
|
||||||
<Gruppe>
|
{ "vorname": "B", "nachname": "BB", "titel": "Prof." }
|
||||||
<Person>
|
]
|
||||||
<Vorname>B</Vorname>
|
},
|
||||||
<Nachname>BB</Nachname>
|
{
|
||||||
<Titel>Prof.</Titel>
|
"anzahl": 5,
|
||||||
</Person>
|
"personen": [
|
||||||
<Anzahl>4</Anzahl>
|
{ "vorname": "C", "nachname": "CC", "titel": "Dr." }
|
||||||
</Gruppe>
|
]
|
||||||
|
}
|
||||||
<Gruppe>
|
]
|
||||||
<Person>
|
}
|
||||||
<Vorname>C</Vorname>
|
|
||||||
<Nachname>CC</Nachname>
|
|
||||||
<Titel>Dr.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>5</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
</Bestellung>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Umfangreicheres Beispiel mit benannten Personen und einer VIP-Gruppe, aus
|
Umfangreicheres Beispiel mit benannten Gruppen und einer VIP-Gruppe, aus
|
||||||
`work/test2/bestellung.xml`:
|
`work/test2/bestellung.json`:
|
||||||
|
|
||||||
```xml
|
```json
|
||||||
<Bestellung>
|
{
|
||||||
|
"gruppen": [
|
||||||
<!-- einfache Gruppe aus drei Personen
|
{
|
||||||
mit festem Wunsch fuer einen Tisch-->
|
"name": "einfache Gruppe aus drei Personen mit festem Wunsch fuer einen Tisch",
|
||||||
<Gruppe>
|
"tisch": 1,
|
||||||
<Person>
|
"personen": [
|
||||||
<Vorname>Michael</Vorname>
|
{ "vorname": "Michael", "nachname": "Stangl", "titel": "Dipl. Ing." },
|
||||||
<Nachname>Stangl</Nachname>
|
{ "vorname": "Magnus", "nachname": "Mueller", "titel": "Professor" },
|
||||||
<Titel>Dipl. Ing.</Titel>
|
{ "vorname": "Bernd Robert", "nachname": "Hoehn", "titel": "Professor" }
|
||||||
</Person>
|
]
|
||||||
<Person>
|
},
|
||||||
<Vorname>Magnus</Vorname>
|
{
|
||||||
<Nachname>Mueller</Nachname>
|
"name": "einfache Gruppe aus zwei Personen",
|
||||||
<Titel>Professor</Titel>
|
"personen": [
|
||||||
</Person>
|
{ "vorname": "Heinz", "nachname": "Bruegge" },
|
||||||
<Person>
|
{ "vorname": "Hubert", "nachname": "K" }
|
||||||
<Vorname>Bernd Robert</Vorname>
|
]
|
||||||
<Nachname>Hoehn</Nachname>
|
},
|
||||||
<Titel>Professor</Titel>
|
{
|
||||||
</Person>
|
"name": "Gruppe aus drei anonymen Personen",
|
||||||
<Tisch>1</Tisch>
|
"anzahl": 3,
|
||||||
</Gruppe>
|
"personen": [
|
||||||
|
{ "vorname": "Bestelli", "nachname": "Bloedkopf" }
|
||||||
<!-- einfache Gruppe aus zwei Personen -->
|
]
|
||||||
<Gruppe>
|
}
|
||||||
<Person>
|
]
|
||||||
<Vorname>Heinz</Vorname>
|
}
|
||||||
<Nachname>Bruegge</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Hubert</Vorname>
|
|
||||||
<Nachname>K</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!--Gruppe aus drei anonymen Personen-->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Bestelli</Vorname>
|
|
||||||
<Nachname>Bloedkopf</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>3</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
</Bestellung>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Die erste Gruppe hier ist per `<Tisch>1</Tisch>` fest an Tisch 1 gebunden (VIP-Gruppe); die
|
Die erste Gruppe hier ist per `"tisch": 1` fest an Tisch 1 gebunden (VIP-Gruppe); die letzte
|
||||||
letzte Gruppe erzeugt ueber `<Anzahl>3</Anzahl>` drei gleichnamige "Bestelli Bloedkopf"
|
Gruppe erzeugt ueber `"anzahl": 3` drei gleichnamige "Bestelli Bloedkopf" Buchungen.
|
||||||
Buchungen.
|
|
||||||
|
> Fuer den Web-Weg (Meilenstein 1) gibt es zusaetzlich einen CSV-Import (`libs/CSVConfig.py`,
|
||||||
|
> Spalten `Vorname;Nachname;Titel;Gruppe;Tisch;Anzahl`) — inhaltlich aequivalent, nur
|
||||||
|
> flach statt verschachtelt.
|
||||||
|
|
||||||
## Ausgabe: `TischePersonen.txt`
|
## Ausgabe: `TischePersonen.txt`
|
||||||
|
|
||||||
|
|||||||
@@ -2,15 +2,18 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="251.2" height="90.4" viewBox="0 0 251.2 90.4">
|
<svg xmlns="http://www.w3.org/2000/svg" width="251.2" height="90.4" viewBox="0 0 251.2 90.4">
|
||||||
<rect width="100%" height="100%" fill="white"/>
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
<circle cx="45.2" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="45.2" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="45.2" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
|
||||||
<circle cx="45.2" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="45.2" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="45.2" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="45.2" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="125.6" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
|
||||||
<circle cx="125.6" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="125.6" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="125.6" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="206" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="206" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="206" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
|
||||||
<circle cx="206" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="206" cy="58.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="58.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="206" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="206" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -2,27 +2,33 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="251.2" height="412" viewBox="0 0 251.2 412">
|
<svg xmlns="http://www.w3.org/2000/svg" width="251.2" height="412" viewBox="0 0 251.2 412">
|
||||||
<rect width="100%" height="100%" fill="white"/>
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
<circle cx="125.6" cy="366.8" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="125.6" cy="366.8" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="125.6" y="329.6" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
|
||||||
<circle cx="125.6" cy="353.6" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="353.6" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="380" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="380" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="125.6" cy="366.8" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="125.6" y="366.8" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="206" cy="286.4" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="206" cy="286.4" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="206" y="249.2" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
|
||||||
<circle cx="206" cy="273.2" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="273.2" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="206" cy="299.6" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="299.6" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="206" cy="286.4" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="206" y="286.4" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="206" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="206" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="206" y="88.4" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
|
||||||
<circle cx="206" cy="112.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="112.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="206" cy="138.8" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="138.8" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="206" cy="125.6" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="206" y="125.6" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="125.6" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
<circle cx="125.6" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="58.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="58.4" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="125.6" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="45.2" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="45.2" cy="125.6" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="45.2" y="88.4" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
|
||||||
<circle cx="45.2" cy="112.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="112.4" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="45.2" cy="138.8" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="138.8" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="45.2" cy="125.6" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="45.2" y="125.6" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="45.2" cy="286.4" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="45.2" cy="286.4" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="45.2" y="249.2" text-anchor="middle" font-size="10" fill="black">Tisch 6</text>
|
|
||||||
<circle cx="45.2" cy="273.2" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="273.2" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="45.2" cy="299.6" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="299.6" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="45.2" cy="286.4" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="45.2" y="286.4" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500" font-family="sans-serif">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<text x="450" y="30" text-anchor="middle" font-size="16" fill="#333">Entwicklung der Loesungsfindung</text>
|
||||||
|
<line x1="60" y1="60" x2="60" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440" x2="840" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440.0" x2="840" y2="440.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="444.0" text-anchor="end" font-size="11" fill="#666">-200</text>
|
||||||
|
<line x1="60" y1="364.0" x2="840" y2="364.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="368.0" text-anchor="end" font-size="11" fill="#666">-168</text>
|
||||||
|
<line x1="60" y1="288.0" x2="840" y2="288.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="292.0" text-anchor="end" font-size="11" fill="#666">-136</text>
|
||||||
|
<line x1="60" y1="212.0" x2="840" y2="212.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="216.0" text-anchor="end" font-size="11" fill="#666">-104</text>
|
||||||
|
<line x1="60" y1="136.0" x2="840" y2="136.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="140.0" text-anchor="end" font-size="11" fill="#666">-72</text>
|
||||||
|
<line x1="60" y1="60.0" x2="840" y2="60.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="64.0" text-anchor="end" font-size="11" fill="#666">-40</text>
|
||||||
|
<text x="18" y="250" text-anchor="middle" font-size="12" fill="#333" transform="rotate(-90 18 250)">Wertigkeit (hoeher = besser)</text>
|
||||||
|
<text x="450" y="482" text-anchor="middle" font-size="12" fill="#333">Zyklus-Aktion (Zeit)</text>
|
||||||
|
<text x="60.0" y="456" text-anchor="middle" font-size="10" fill="#999">e</text>
|
||||||
|
<text x="450.0" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="840.0" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<polyline points="60.0,178.8 450.0,131.2 840.0,60.0" fill="none" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,313.3 450.0,155.0 840.0,95.6" fill="none" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,440.0 450.0,178.8 840.0,131.2" fill="none" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<line x1="680" y1="70" x2="704" y2="70" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<text x="710" y="74" font-size="11" fill="#333">beste Loesung</text>
|
||||||
|
<line x1="680" y1="88" x2="704" y2="88" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<text x="710" y="92" font-size="11" fill="#333">Durchschnitt</text>
|
||||||
|
<line x1="680" y1="106" x2="704" y2="106" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<text x="710" y="110" font-size="11" fill="#333">schlechteste Loesung</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -2,19 +2,23 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="331.6" height="90.4" viewBox="0 0 331.6 90.4">
|
<svg xmlns="http://www.w3.org/2000/svg" width="331.6" height="90.4" viewBox="0 0 331.6 90.4">
|
||||||
<rect width="100%" height="100%" fill="white"/>
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
<circle cx="45.2" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="45.2" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="45.2" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
|
||||||
<circle cx="45.2" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="45.2" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="45.2" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="45.2" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="45.2" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="125.6" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="125.6" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
|
||||||
<circle cx="125.6" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="125.6" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="125.6" cy="58.4" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="125.6" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="125.6" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="206" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="206" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="206" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
|
||||||
<circle cx="206" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="206" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="206" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="206" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="206" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
<circle cx="286.4" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="286.4" cy="45.2" r="35.2" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="286.4" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
|
||||||
<circle cx="286.4" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="286.4" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="286.4" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="286.4" cy="58.4" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="286.4" cy="45.2" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="286.4" y="45.2" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">0</text>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -235,6 +235,17 @@ verarbeitet werden (was bei jedem Webserver der Fall ist).
|
|||||||
- [ ] Optional: Hintergrund-Job-Queue (z.B. Celery/RQ), falls Berechnung >5s dauert,
|
- [ ] Optional: Hintergrund-Job-Queue (z.B. Celery/RQ), falls Berechnung >5s dauert,
|
||||||
damit der Webserver nicht blockiert
|
damit der Webserver nicht blockiert
|
||||||
|
|
||||||
|
**Tech-Debt / Modernisierung (Code-Review 2026-07-11):** Beim Umbau bereits erledigt sind
|
||||||
|
`eval()` → `ast.literal_eval` (bzw. ein sicherer Mini-Auswerter für die String-Ausdrücke
|
||||||
|
in `zyklus.cfg`) und `defaultdict(set)` in `Plaetze`. Bewusst *nicht* umgesetzt, für M2 zu
|
||||||
|
prüfen: **GA-Kern auf [DEAP](https://deap.readthedocs.io/) umstellen** (fertige
|
||||||
|
Population/Selektion/Statistik — würde das eigene `Farm`/`Entwicklung`-Gerüst ablösen und
|
||||||
|
`TopN` sowie die Diversitäts-Seeds quasi geschenkt liefern); **SVG-Erzeugung** in
|
||||||
|
`Sitzplatzverteilung.alsSVG`/`Entwicklung.alsSVG` von String-Konkatenation auf `svgwrite`
|
||||||
|
oder Jinja2-Templates; **Container-/Datenklassen** (`Person`, `Gruppe`, …) als
|
||||||
|
`@dataclass`. `Sitzplatzverteilung.TopX` bleibt bewusst handgeschrieben (die monoton
|
||||||
|
sinkende Schwelle prägt das Mutationsverhalten, siehe Kommentar im Code).
|
||||||
|
|
||||||
**Aufwand:** ~3–4 Wochen, aufbauend auf Meilenstein 1.
|
**Aufwand:** ~3–4 Wochen, aufbauend auf Meilenstein 1.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
Liest eine Gaesteliste im CSV-Format ein — der Web-Ersatz fuer bestellung.xml
|
Liest eine Gaesteliste im CSV-Format ein — der Web-Ersatz fuer bestellung.json
|
||||||
(Meilenstein 1 der Roadmap, Adapter analog zu XMLConfig in Strukturdaten.py).
|
(Meilenstein 1 der Roadmap, Adapter analog zu JSONConfig in Strukturdaten.py).
|
||||||
|
|
||||||
CSV-Format (Kopfzeile noetig, Spaltenreihenfolge egal, Trennzeichen ; oder ,):
|
CSV-Format (Kopfzeile noetig, Spaltenreihenfolge egal, Trennzeichen ; oder ,):
|
||||||
|
|
||||||
@@ -12,10 +12,10 @@ CSV-Format (Kopfzeile noetig, Spaltenreihenfolge egal, Trennzeichen ; oder ,):
|
|||||||
zusammen und sollen moeglichst zusammen sitzen.
|
zusammen und sollen moeglichst zusammen sitzen.
|
||||||
Leer = Einzelperson (bildet eine eigene Ein-Personen-Gruppe).
|
Leer = Einzelperson (bildet eine eigene Ein-Personen-Gruppe).
|
||||||
- Tisch: optionale Tischnummer — die Person ist VIP und wird fest an
|
- Tisch: optionale Tischnummer — die Person ist VIP und wird fest an
|
||||||
diesen Tisch gesetzt (wie <Tisch> in bestellung.xml).
|
diesen Tisch gesetzt (wie "tisch" in bestellung.json).
|
||||||
VIPs laufen nicht durch die GA-Platzierung.
|
VIPs laufen nicht durch die GA-Platzierung.
|
||||||
- Anzahl: optionale Reservierungsanzahl — expandiert die Zeile in so
|
- Anzahl: optionale Reservierungsanzahl — expandiert die Zeile in so
|
||||||
viele identische Buchungen (wie <Anzahl> in bestellung.xml,
|
viele identische Buchungen (wie "anzahl" in bestellung.json,
|
||||||
z.B. fuer anonyme Sammelbuchungen). Leer = 1.
|
z.B. fuer anonyme Sammelbuchungen). Leer = 1.
|
||||||
|
|
||||||
Zusaetzlich werden die Spalten "MagNicht" und "MagGern" akzeptiert,
|
Zusaetzlich werden die Spalten "MagNicht" und "MagGern" akzeptiert,
|
||||||
@@ -35,7 +35,7 @@ from Strukturdaten import Person, Personen, Gruppe, Gruppen
|
|||||||
|
|
||||||
|
|
||||||
class CSVConfig:
|
class CSVConfig:
|
||||||
"""aus CSV Text/Datei alles einlesen (Rueckgabe wie XMLConfig.laden,
|
"""aus CSV Text/Datei alles einlesen (Rueckgabe wie JSONConfig.laden,
|
||||||
plus Gruppennamen fuer die Anzeige im Web-Frontend)"""
|
plus Gruppennamen fuer die Anzeige im Web-Frontend)"""
|
||||||
|
|
||||||
PflichtSpalten = ['vorname', 'nachname']
|
PflichtSpalten = ['vorname', 'nachname']
|
||||||
@@ -46,11 +46,11 @@ class CSVConfig:
|
|||||||
"""parst den CSV-Text und baut Personen/Gruppen/VIPs auf
|
"""parst den CSV-Text und baut Personen/Gruppen/VIPs auf
|
||||||
|
|
||||||
Rueckgabe: [ PN, GN, VIPGruppe, VipHash, GruppenNamen ]
|
Rueckgabe: [ PN, GN, VIPGruppe, VipHash, GruppenNamen ]
|
||||||
- PN: Personen-Container (ohne VIPs, wie XMLConfig)
|
- PN: Personen-Container (ohne VIPs, wie JSONConfig)
|
||||||
- GN: Gruppen-Container (ohne VIP-Gruppe, wie XMLConfig)
|
- GN: Gruppen-Container (ohne VIP-Gruppe, wie JSONConfig)
|
||||||
- VIPGruppe: Gruppe(0) mit allen fest gesetzten Personen
|
- VIPGruppe: Gruppe(0) mit allen fest gesetzten Personen
|
||||||
- VipHash: { PersonId: Tischnummer } fuer VIPsSetzen()
|
- VipHash: { PersonId: Tischnummer } fuer VIPsSetzen()
|
||||||
- GruppenNamen: { GruppenId: Anzeigename } (neu gegenueber XMLConfig)
|
- GruppenNamen: { GruppenId: Anzeigename }
|
||||||
"""
|
"""
|
||||||
# Trennzeichen automatisch bestimmen: die Kopfzeile entscheidet
|
# Trennzeichen automatisch bestimmen: die Kopfzeile entscheidet
|
||||||
Kopfzeile = Text.lstrip('').splitlines()[0] if Text.strip() else ''
|
Kopfzeile = Text.lstrip('').splitlines()[0] if Text.strip() else ''
|
||||||
|
|||||||
@@ -11,11 +11,12 @@ __license__ = "Python"
|
|||||||
|
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
from random import *
|
from random import *
|
||||||
|
import ast
|
||||||
import configparser, os
|
import configparser, os
|
||||||
import copy
|
import copy
|
||||||
import math
|
import math
|
||||||
|
from collections import defaultdict
|
||||||
from functools import total_ordering
|
from functools import total_ordering
|
||||||
from xml.dom import minidom
|
|
||||||
|
|
||||||
|
|
||||||
# Strukturklassen: Person, Gruppe, Tisch
|
# Strukturklassen: Person, Gruppe, Tisch
|
||||||
@@ -256,12 +257,15 @@ class Tische:
|
|||||||
config.read( os.path.expanduser(FileName) )
|
config.read( os.path.expanduser(FileName) )
|
||||||
for section in config.sections():
|
for section in config.sections():
|
||||||
Tid = int(section)
|
Tid = int(section)
|
||||||
Nummer = eval(config.get( section, 'Nummer' ))
|
# ast.literal_eval statt eval: tische.ini kann eine hochgeladene
|
||||||
nPl = eval(config.get( section, 'Plaetze' ))
|
# Fremddatei sein (Web-M1), da darf kein beliebiger Code laufen.
|
||||||
Koords = eval(config.get( section, 'Koordinaten' ))
|
# Erlaubt weiterhin Zahlen, Tupel und Listen wie zuvor.
|
||||||
Nachbarn = eval(config.get( section, 'Nachbarliste' ))
|
Nummer = ast.literal_eval(config.get( section, 'Nummer' ))
|
||||||
Hofid = eval(config.get( section, 'Hof' ))
|
nPl = ast.literal_eval(config.get( section, 'Plaetze' ))
|
||||||
T = Tisch( Tid, Plaetze=nPl, Koordinaten=Koords, Nachbarliste=Nachbarn, Hof=Hofid, Nummer=Nummer )
|
Koords = ast.literal_eval(config.get( section, 'Koordinaten' ))
|
||||||
|
Nachbarn = ast.literal_eval(config.get( section, 'Nachbarliste' ))
|
||||||
|
Hofid = ast.literal_eval(config.get( section, 'Hof' ))
|
||||||
|
T = Tisch( Tid, Plaetze=nPl, Koordinaten=Koords, Nachbarliste=Nachbarn, Hof=Hofid, Nummer=Nummer )
|
||||||
self.Tisch_dazu( T )
|
self.Tisch_dazu( T )
|
||||||
def vonId(self, SearchedId):
|
def vonId(self, SearchedId):
|
||||||
for T in chain(self.TischListe):
|
for T in chain(self.TischListe):
|
||||||
@@ -281,19 +285,21 @@ class Tische:
|
|||||||
class Plaetze:
|
class Plaetze:
|
||||||
"""Informationen ueber freie oder benachbarte Plaetze"""
|
"""Informationen ueber freie oder benachbarte Plaetze"""
|
||||||
def __init__(self, Tische):
|
def __init__(self, Tische):
|
||||||
# mache Listen mit den Tischen mit n Freien Plaetzen
|
# je Anzahl freier Plaetze ein Set von Tisch-Ids. defaultdict(set)
|
||||||
self.__TIDsNFreie = []
|
# erspart die manuelle Vorbelegung und liefert fuer noch nie
|
||||||
|
# gesehene Fuellstaende automatisch ein leeres Set.
|
||||||
|
self.__TIDsNFreie = defaultdict(set)
|
||||||
self.__Groesster = Tische.Groesster
|
self.__Groesster = Tische.Groesster
|
||||||
self.__Tische = Tische
|
self.__Tische = Tische
|
||||||
for i in range( self.__Groesster + 1 ):
|
|
||||||
self.__TIDsNFreie.append( set() )
|
|
||||||
for T in Tische.TischListe:
|
for T in Tische.TischListe:
|
||||||
n_freie = T.freiePlaetze()
|
n_freie = T.freiePlaetze()
|
||||||
self.__TIDsNFreie[n_freie].add(T.Id)
|
self.__TIDsNFreie[n_freie].add(T.Id)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
result = "\n-- Tische mit n Freien Plaetzen:\n"
|
result = "\n-- Tische mit n Freien Plaetzen:\n"
|
||||||
for i in range(self.__Groesster+1):
|
for i in range(self.__Groesster+1):
|
||||||
result = result + " " +repr(i) + " :" + repr(self.__TIDsNFreie[i]) + "\n"
|
# .get statt [i], damit das Anzeigen keine leeren Eintraege
|
||||||
|
# ins defaultdict schreibt
|
||||||
|
result = result + " " +repr(i) + " :" + repr(self.__TIDsNFreie.get(i, set())) + "\n"
|
||||||
return result
|
return result
|
||||||
def IdsnFreie(self, n_freie):
|
def IdsnFreie(self, n_freie):
|
||||||
"""gibt ein Set mit allen Tischids zurueck, wo noch X freie Plaetze sind"""
|
"""gibt ein Set mit allen Tischids zurueck, wo noch X freie Plaetze sind"""
|
||||||
@@ -406,11 +412,13 @@ class Strafliste:
|
|||||||
print("-- Strafliste laden")
|
print("-- Strafliste laden")
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read( os.path.expanduser(FileName) )
|
config.read( os.path.expanduser(FileName) )
|
||||||
self.NichtNachbar = eval(config.get( 'Globals', 'NichtNachbar' ))
|
# ast.literal_eval statt eval: die Werte sind reine Literale
|
||||||
self.Allein = eval(config.get( 'Globals', 'Allein' ))
|
# (Zahlen und Dicts wie {2:-10}), also kein Code noetig.
|
||||||
self.TischWert = eval( config.get( 'Globals', 'TischWertigkeiten' ) )
|
self.NichtNachbar = ast.literal_eval(config.get( 'Globals', 'NichtNachbar' ))
|
||||||
|
self.Allein = ast.literal_eval(config.get( 'Globals', 'Allein' ))
|
||||||
|
self.TischWert = ast.literal_eval( config.get( 'Globals', 'TischWertigkeiten' ) )
|
||||||
for (k,v) in config.items( 'Trennung' ):
|
for (k,v) in config.items( 'Trennung' ):
|
||||||
self.GruppenTrennen[int(k)] = eval(v)
|
self.GruppenTrennen[int(k)] = ast.literal_eval(v)
|
||||||
|
|
||||||
|
|
||||||
# Sitzplatzverteilung, bestehend aus den Einzelelementen
|
# Sitzplatzverteilung, bestehend aus den Einzelelementen
|
||||||
@@ -618,10 +626,6 @@ class Sitzplatzverteilung:
|
|||||||
Teile.append(
|
Teile.append(
|
||||||
'<circle cx="%g" cy="%g" r="%g" fill="white" '
|
'<circle cx="%g" cy="%g" r="%g" fill="white" '
|
||||||
'stroke="black" stroke-width="1.5"/>\n' % (Mx, My, TR) )
|
'stroke="black" stroke-width="1.5"/>\n' % (Mx, My, TR) )
|
||||||
Teile.append(
|
|
||||||
'<text x="%g" y="%g" text-anchor="middle" '
|
|
||||||
'font-size="10" fill="black">Tisch %s</text>\n'
|
|
||||||
% (Mx, My - TR - 2, T.Id) )
|
|
||||||
|
|
||||||
Plaetze = list(T)
|
Plaetze = list(T)
|
||||||
n = len(Plaetze)
|
n = len(Plaetze)
|
||||||
@@ -636,6 +640,19 @@ class Sitzplatzverteilung:
|
|||||||
'stroke="black" stroke-width="1"/>\n'
|
'stroke="black" stroke-width="1"/>\n'
|
||||||
% (Px, Py, PersonenRadius, Farbe) )
|
% (Px, Py, PersonenRadius, Farbe) )
|
||||||
|
|
||||||
|
# Tischnummer zentriert in die Tischmitte (nach den Personen-
|
||||||
|
# kreisen gezeichnet, damit sie oben liegt; ein halbtransparenter
|
||||||
|
# weisser Kreis darunter haelt sie auch ueber Personenkreisen
|
||||||
|
# lesbar, falls die Tischmitte belegt sein sollte)
|
||||||
|
Teile.append(
|
||||||
|
'<circle cx="%g" cy="%g" r="%g" fill="white" '
|
||||||
|
'fill-opacity="0.75"/>\n' % (Mx, My, PersonenRadius) )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%g" y="%g" text-anchor="middle" '
|
||||||
|
'dominant-baseline="central" font-size="%g" '
|
||||||
|
'font-weight="bold" fill="black">%s</text>\n'
|
||||||
|
% (Mx, My, PersonenRadius * 1.1, T.Nummer) )
|
||||||
|
|
||||||
Teile.append( '</svg>\n' )
|
Teile.append( '</svg>\n' )
|
||||||
|
|
||||||
fout = open( OutputSVG, 'w' )
|
fout = open( OutputSVG, 'w' )
|
||||||
@@ -897,11 +914,19 @@ class Sitzplatzverteilung:
|
|||||||
Tisch = Tische.vonId(TischId)
|
Tisch = Tische.vonId(TischId)
|
||||||
self.PersonSetzen( Person, Tisch )
|
self.PersonSetzen( Person, Tisch )
|
||||||
def TopX(self, Liste, Anzahl=-1 ):
|
def TopX(self, Liste, Anzahl=-1 ):
|
||||||
"""gibt eine Liste mit X Ids zurueck, die die schlechtesten Wertungen haben"""
|
"""gibt eine Liste mit X Ids zurueck, die die schlechtesten Wertungen haben
|
||||||
|
|
||||||
|
Achtung: Dies ist bewusst *nicht* heapq.nsmallest. Der laufende
|
||||||
|
Schwellwert Min sinkt monoton mit, so dass nur Ids aufgenommen
|
||||||
|
werden, die waehrend der Iteration einen neuen Tiefpunkt erreichen
|
||||||
|
oder gleichziehen. Das Ergebnis haengt an der Iterationsreihenfolge
|
||||||
|
und praegt das Mutationsverhalten des GA (mutieren() ->
|
||||||
|
SchlechteGruppenTopX). Eine Umstellung auf heapq wuerde die
|
||||||
|
Loesungsfindung veraendern und ist daher bewusst unterlassen.
|
||||||
|
"""
|
||||||
Min = 0
|
Min = 0
|
||||||
RListe=[]
|
RListe=[]
|
||||||
Wertigkeit=[]
|
Wertigkeit=[]
|
||||||
# TODO filter verwenden
|
|
||||||
for Id, Wert in Liste.items():
|
for Id, Wert in Liste.items():
|
||||||
if Wert <= Min:
|
if Wert <= Min:
|
||||||
RListe.append(Id)
|
RListe.append(Id)
|
||||||
@@ -911,92 +936,112 @@ class Sitzplatzverteilung:
|
|||||||
|
|
||||||
|
|
||||||
# Sitzplatzverteilung, bestehend aus den Einzelelementen
|
# Sitzplatzverteilung, bestehend aus den Einzelelementen
|
||||||
class XMLConfig:
|
class JSONConfig:
|
||||||
"""aus Xml file alles einlesen"""
|
"""liest die Gaesteliste aus einer bestellung.json ein
|
||||||
def getText(self, nodelist):
|
(Nachfolger des frueheren XMLConfig; JSON hat die alte XML-Form
|
||||||
rc = ""
|
abgeloest, siehe doc/dateiformate.md).
|
||||||
for node in nodelist:
|
|
||||||
if node.nodeType == node.TEXT_NODE:
|
Erwartete Struktur:
|
||||||
rc = rc + node.data
|
{
|
||||||
return rc
|
"gruppen": [
|
||||||
def handlePersonNode( self, person ):
|
{
|
||||||
"""Personendaten erfassen"""
|
"name": "Familie Huber", # optional, nur Anzeige
|
||||||
info = {}
|
"tisch": 1, # optional -> VIP-Fixplatz
|
||||||
try:
|
"anzahl": 1, # optional -> Sammelbuchung
|
||||||
Titel = person.getElementsByTagName("Titel")[0]
|
"personen": [
|
||||||
info["Titel"] = self.getText(Titel.childNodes)
|
{"vorname": "Anna", "nachname": "Huber", "titel": ""}
|
||||||
except IndexError:
|
]
|
||||||
info["Titel"] = ""
|
}
|
||||||
Vorname = person.getElementsByTagName("Vorname")[0]
|
]
|
||||||
Nachname = person.getElementsByTagName("Nachname")[0]
|
}
|
||||||
info["Vorname"] = self.getText(Vorname.childNodes)
|
|
||||||
info["Nachname"] = self.getText(Nachname.childNodes)
|
"tisch" macht die ganze Gruppe zu VIPs an diesem Tisch (laeuft
|
||||||
return info
|
nicht durch die GA-Platzierung). "anzahl" > 1 vervielfacht jede
|
||||||
def HandleBestellung(self, Bestellung):
|
Person der Gruppe in so viele identische Buchungen (anonyme
|
||||||
"""alle Bloecke in der XML Bestellung parsen"""
|
Sammelbuchung). "titel" ist optional.
|
||||||
PidListe = []
|
"""
|
||||||
VipHash = {}
|
def HandleBestellung(self, Daten):
|
||||||
|
"""die geladene JSON-Struktur in Personen/Gruppen/VIPs zerlegen
|
||||||
|
|
||||||
|
Rueckgabe: [ PN, GN, VIPGruppe, VipHash, GruppenNamen ]
|
||||||
|
(wie CSVConfig; das fruehere XMLConfig gab die ersten vier
|
||||||
|
Elemente zurueck - Aufrufer, die GruppenNamen nicht brauchen,
|
||||||
|
koennen es ignorieren.)
|
||||||
|
"""
|
||||||
|
if not isinstance( Daten, dict ) or 'gruppen' not in Daten:
|
||||||
|
raise ValueError("bestellung.json braucht ein Objekt mit dem "
|
||||||
|
"Schluessel 'gruppen'")
|
||||||
|
|
||||||
PN = Personen()
|
PN = Personen()
|
||||||
GN = Gruppen()
|
GN = Gruppen()
|
||||||
VIPGruppe = Gruppe( 0 )
|
VIPGruppe = Gruppe( 0 )
|
||||||
|
VipHash = {}
|
||||||
|
GruppenNamen = {}
|
||||||
|
|
||||||
print('-HandleBestellung')
|
|
||||||
AlleGruppenXML = Bestellung.getElementsByTagName("Gruppe")
|
|
||||||
PID = 0
|
PID = 0
|
||||||
GID = 0
|
GID = 0
|
||||||
for GruppeXML in AlleGruppenXML:
|
for Index, GruppeJSON in enumerate( Daten['gruppen'] ):
|
||||||
GID = GID + 1
|
if 'personen' not in GruppeJSON:
|
||||||
print('-- GID ' + repr(GID))
|
raise ValueError("Gruppe %d: 'personen' fehlt" % (Index + 1))
|
||||||
G = Gruppe( GID )
|
|
||||||
|
|
||||||
IsVip = False
|
IsVip = 'tisch' in GruppeJSON and GruppeJSON['tisch'] is not None
|
||||||
AnzahlReservierungen = 1
|
if IsVip:
|
||||||
for Node in GruppeXML.childNodes:
|
try:
|
||||||
if Node.nodeName == 'Tisch':
|
TischNr = int( GruppeJSON['tisch'] )
|
||||||
TischNr = self.getText(Node.childNodes)
|
except (TypeError, ValueError):
|
||||||
print('TischNr:', TischNr)
|
raise ValueError("Gruppe %d: 'tisch' ist keine "
|
||||||
IsVip = True
|
"Tischnummer" % (Index + 1))
|
||||||
if Node.nodeName == 'Anzahl':
|
|
||||||
AnzahlReservierungen = int(self.getText(Node.childNodes))
|
|
||||||
print('Anzahl der Reservierungen:', AnzahlReservierungen)
|
|
||||||
IsContingent = True
|
|
||||||
|
|
||||||
for Node in GruppeXML.childNodes:
|
try:
|
||||||
if Node.nodeName == 'Person':
|
AnzahlReservierungen = int( GruppeJSON.get( 'anzahl', 1 ) )
|
||||||
NRes = 0
|
except (TypeError, ValueError):
|
||||||
for i in range(int(AnzahlReservierungen)):
|
raise ValueError("Gruppe %d: 'anzahl' ist keine Zahl"
|
||||||
NRes = NRes + 1
|
% (Index + 1))
|
||||||
PID = PID + 1
|
if AnzahlReservierungen < 1:
|
||||||
print("PID =" + repr(PID))
|
raise ValueError("Gruppe %d: 'anzahl' muss >= 1 sein"
|
||||||
info = self.handlePersonNode( Node )
|
% (Index + 1))
|
||||||
|
|
||||||
|
# regulaere (nicht-VIP) Gruppen bekommen eine GID
|
||||||
|
if not IsVip:
|
||||||
|
GID = GID + 1
|
||||||
|
G = Gruppe( GID )
|
||||||
|
GruppenNamen[ GID ] = GruppeJSON.get( 'name', 'Gruppe %d' % GID )
|
||||||
|
|
||||||
|
for PersonJSON in GruppeJSON['personen']:
|
||||||
|
Vorname = str( PersonJSON.get( 'vorname', '' ) ).strip()
|
||||||
|
Nachname = str( PersonJSON.get( 'nachname', '' ) ).strip()
|
||||||
|
Titel = str( PersonJSON.get( 'titel', '' ) ).strip()
|
||||||
|
if Vorname == '' or Nachname == '':
|
||||||
|
raise ValueError("Gruppe %d: jede Person braucht Vorname "
|
||||||
|
"und Nachname" % (Index + 1))
|
||||||
|
for i in range( AnzahlReservierungen ):
|
||||||
|
PID = PID + 1
|
||||||
|
P = Person( PID, Vorname, Nachname, Titel )
|
||||||
|
if IsVip:
|
||||||
|
VipHash[ PID ] = TischNr
|
||||||
|
VIPGruppe.Person_dazu( P )
|
||||||
|
else:
|
||||||
|
PN.PersonAdd( P )
|
||||||
|
G.Person_dazu( P )
|
||||||
|
|
||||||
|
if not IsVip:
|
||||||
|
if G.Anzahl() > 0:
|
||||||
|
GN.Gruppe_dazu( G )
|
||||||
|
else:
|
||||||
|
# leere Gruppe wieder verwerfen
|
||||||
|
del GruppenNamen[ GID ]
|
||||||
|
GID = GID - 1
|
||||||
|
|
||||||
|
return [ PN, GN, VIPGruppe, VipHash, GruppenNamen ]
|
||||||
|
|
||||||
Vorname = info["Vorname"]
|
|
||||||
Nachname = info["Nachname"]
|
|
||||||
Titel = info["Titel"]
|
|
||||||
P = Person( PID, Vorname, Nachname, Titel)
|
|
||||||
if IsVip == True:
|
|
||||||
PidListe.append( int(PID) )
|
|
||||||
VipHash[ int(PID) ] = int(TischNr)
|
|
||||||
VIPGruppe.Person_dazu( P )
|
|
||||||
else:
|
|
||||||
PN.PersonAdd( P )
|
|
||||||
G.Person_dazu( P )
|
|
||||||
if (G.Anzahl() > 0) & (IsVip != True):
|
|
||||||
GN.Gruppe_dazu( G )
|
|
||||||
if IsVip == True:
|
|
||||||
GID = GID - 1
|
|
||||||
print(PN)
|
|
||||||
print(GN)
|
|
||||||
print(VIPGruppe)
|
|
||||||
print(VipHash)
|
|
||||||
print('==========')
|
|
||||||
return [ PN, GN, VIPGruppe, VipHash ]
|
|
||||||
def laden(self, Bestellung):
|
def laden(self, Bestellung):
|
||||||
"""lese alle Eingangsdaten aus einem XML File ein"""
|
"""lese alle Eingangsdaten aus einer JSON-Datei ein"""
|
||||||
fsock = open( Bestellung, 'r')
|
import json
|
||||||
xmlini = minidom.parse(fsock)
|
# utf-8-sig schluckt ein evtl. vorhandenes BOM
|
||||||
return self.HandleBestellung(xmlini)
|
fsock = open( Bestellung, 'r', encoding='utf-8-sig' )
|
||||||
|
Daten = json.load( fsock )
|
||||||
|
fsock.close()
|
||||||
|
return self.HandleBestellung( Daten )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,37 @@ from random import *
|
|||||||
from itertools import chain
|
from itertools import chain
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from functools import total_ordering
|
from functools import total_ordering
|
||||||
|
import ast
|
||||||
import configparser, os
|
import configparser, os
|
||||||
|
|
||||||
|
|
||||||
|
def _StringAusdruck(text):
|
||||||
|
"""wertet einen einfachen String-Ausdruck sicher aus.
|
||||||
|
|
||||||
|
zyklus.cfg nutzt kompakte Schreibweisen wie
|
||||||
|
'e,'+'s,z,m,j,z,'*3+'s'
|
||||||
|
also String-Literale, mit '+' verkettet und mit '*' vervielfacht.
|
||||||
|
ast.literal_eval kann das nicht (nur reine Literale), eval() waere
|
||||||
|
unsicher. Dieser Mini-Auswerter erlaubt ausschliesslich str-Literale,
|
||||||
|
ganze Zahlen sowie die Operatoren + und * - kein Funktionsaufruf,
|
||||||
|
keine Namen, kein beliebiger Code.
|
||||||
|
"""
|
||||||
|
knoten = ast.parse(text, mode='eval').body
|
||||||
|
|
||||||
|
def rechne(n):
|
||||||
|
if isinstance(n, ast.Constant) and isinstance(n.value, (str, int)):
|
||||||
|
return n.value
|
||||||
|
if isinstance(n, ast.BinOp) and isinstance(n.op, (ast.Add, ast.Mult)):
|
||||||
|
links, rechts = rechne(n.left), rechne(n.right)
|
||||||
|
return links + rechts if isinstance(n.op, ast.Add) else links * rechts
|
||||||
|
raise ValueError("unerlaubter Ausdruck in zyklus.cfg: %r" % text)
|
||||||
|
|
||||||
|
ergebnis = rechne(knoten)
|
||||||
|
if not isinstance(ergebnis, str):
|
||||||
|
raise ValueError("zyklus.cfg-Ausdruck ergibt keinen String: %r" % text)
|
||||||
|
return ergebnis
|
||||||
|
|
||||||
|
|
||||||
__author__ = "Michael Stangl"
|
__author__ = "Michael Stangl"
|
||||||
__version__ = "$Revision: $"
|
__version__ = "$Revision: $"
|
||||||
__date__ = "$Date: $"
|
__date__ = "$Date: $"
|
||||||
@@ -65,24 +93,174 @@ class Zyklus:
|
|||||||
ZyklusPath= os.path.join( FileName )
|
ZyklusPath= os.path.join( FileName )
|
||||||
config.read( ZyklusPath )
|
config.read( ZyklusPath )
|
||||||
self.Name = ZyklusName
|
self.Name = ZyklusName
|
||||||
Abfolge = eval( config.get( ZyklusName, 'Abfolge' ))
|
Abfolge = _StringAusdruck( config.get( ZyklusName, 'Abfolge' ))
|
||||||
Anzahl = eval( config.get( ZyklusName, 'Anzahl' ))
|
Anzahl = _StringAusdruck( config.get( ZyklusName, 'Anzahl' ))
|
||||||
self.Abfolge = Abfolge.split(',')
|
self.Abfolge = Abfolge.split(',')
|
||||||
self.Anzahl = Anzahl.split(',')
|
self.Anzahl = Anzahl.split(',')
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class Entwicklung:
|
||||||
|
"""Beobachtungsobjekt: zeichnet den Verlauf der Loesungsfindung auf.
|
||||||
|
|
||||||
|
Nach jeder Zyklus-Aktion wird ein Messpunkt erfasst (bester,
|
||||||
|
durchschnittlicher und schlechtester Wert im aktuellen Pool).
|
||||||
|
alsSVG() zeichnet daraus eine Verlaufsgrafik: Zeitachse (Aktions-
|
||||||
|
index) nach rechts, Wertigkeit auf der Y-Achse. Domaenen-agnostisch;
|
||||||
|
funktioniert mit jeder Loesung, die ein Attribut .value hat.
|
||||||
|
"""
|
||||||
|
# Buchstaben der Zyklus-Abfolge -> lesbare Namen fuer die Beschriftung
|
||||||
|
AktionsNamen = {
|
||||||
|
'e': 'erzeugen', 'm': 'mutieren', 's': 'selektieren',
|
||||||
|
'S': 'zufaellig', 'j': 'behalten', 'z': 'Generation' }
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
# je Messpunkt: (Schrittindex, Aktion, bester, schnitt, schlechtester, N)
|
||||||
|
self.Punkte = []
|
||||||
|
|
||||||
|
def erfassen(self, Aktion, Pool):
|
||||||
|
"""einen Messpunkt aus dem aktuellen Pool aufnehmen"""
|
||||||
|
if not Pool:
|
||||||
|
return
|
||||||
|
Werte = [ L.value for L in Pool ]
|
||||||
|
self.Punkte.append( (
|
||||||
|
len(self.Punkte),
|
||||||
|
Aktion,
|
||||||
|
max(Werte),
|
||||||
|
sum(Werte) / len(Werte),
|
||||||
|
min(Werte),
|
||||||
|
len(Werte) ) )
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
r = "-- Entwicklung (%d Messpunkte):\n" % len(self.Punkte)
|
||||||
|
for (i, Aktion, best, schnitt, schlecht, n) in self.Punkte:
|
||||||
|
r = r + (" %3d %-12s best=%s schnitt=%.1f schlecht=%s (N=%d)\n"
|
||||||
|
% (i, self.AktionsNamen.get(Aktion, Aktion),
|
||||||
|
best, schnitt, schlecht, n))
|
||||||
|
return r
|
||||||
|
|
||||||
|
def alsSVG(self, OutputSVG, Breite=900, Hoehe=500, Rand=60):
|
||||||
|
"""zeichnet den aufgezeichneten Verlauf als SVG-Liniendiagramm"""
|
||||||
|
if not self.Punkte:
|
||||||
|
raise ValueError("keine Messpunkte aufgezeichnet")
|
||||||
|
|
||||||
|
AlleWerte = []
|
||||||
|
for (_i, _a, best, schnitt, schlecht, _n) in self.Punkte:
|
||||||
|
AlleWerte.extend( (best, schnitt, schlecht) )
|
||||||
|
WMin, WMax = min(AlleWerte), max(AlleWerte)
|
||||||
|
if WMax == WMin:
|
||||||
|
WMax = WMin + 1 # flache Linie nicht auf den Rand kleben
|
||||||
|
|
||||||
|
N = len(self.Punkte)
|
||||||
|
PlotBreite = Breite - 2 * Rand
|
||||||
|
PlotHoehe = Hoehe - 2 * Rand
|
||||||
|
|
||||||
|
def X(i):
|
||||||
|
if N == 1:
|
||||||
|
return Rand + PlotBreite / 2
|
||||||
|
return Rand + PlotBreite * i / (N - 1)
|
||||||
|
|
||||||
|
def Y(wert):
|
||||||
|
# hoher (besserer) Wert oben, niedriger unten
|
||||||
|
return Rand + PlotHoehe * (WMax - wert) / (WMax - WMin)
|
||||||
|
|
||||||
|
def Polyline(Index, Farbe, Beschriftung):
|
||||||
|
punkte = ' '.join( '%.1f,%.1f' % (X(i), Y(p[Index]))
|
||||||
|
for i, p in enumerate(self.Punkte) )
|
||||||
|
return ('<polyline points="%s" fill="none" stroke="%s" '
|
||||||
|
'stroke-width="2"/>\n' % (punkte, Farbe), Beschriftung, Farbe)
|
||||||
|
|
||||||
|
Teile = []
|
||||||
|
Teile.append( '<?xml version="1.0" encoding="UTF-8"?>\n' )
|
||||||
|
Teile.append(
|
||||||
|
'<svg xmlns="http://www.w3.org/2000/svg" width="%d" height="%d" '
|
||||||
|
'viewBox="0 0 %d %d" font-family="sans-serif">\n'
|
||||||
|
% (Breite, Hoehe, Breite, Hoehe) )
|
||||||
|
Teile.append( '<rect width="100%" height="100%" fill="white"/>\n' )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%d" y="30" text-anchor="middle" font-size="16" '
|
||||||
|
'fill="#333">Entwicklung der Loesungsfindung</text>\n'
|
||||||
|
% (Breite // 2) )
|
||||||
|
|
||||||
|
# Achsen
|
||||||
|
Teile.append(
|
||||||
|
'<line x1="%d" y1="%d" x2="%d" y2="%d" stroke="#333" '
|
||||||
|
'stroke-width="1.5"/>\n' % (Rand, Rand, Rand, Hoehe - Rand) )
|
||||||
|
Teile.append(
|
||||||
|
'<line x1="%d" y1="%d" x2="%d" y2="%d" stroke="#333" '
|
||||||
|
'stroke-width="1.5"/>\n'
|
||||||
|
% (Rand, Hoehe - Rand, Breite - Rand, Hoehe - Rand) )
|
||||||
|
|
||||||
|
# Y-Gitter + Beschriftung (5 Linien)
|
||||||
|
for k in range(6):
|
||||||
|
wert = WMin + (WMax - WMin) * k / 5
|
||||||
|
y = Y(wert)
|
||||||
|
Teile.append(
|
||||||
|
'<line x1="%d" y1="%.1f" x2="%d" y2="%.1f" stroke="#eee" '
|
||||||
|
'stroke-width="1"/>\n' % (Rand, y, Breite - Rand, y) )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%d" y="%.1f" text-anchor="end" font-size="11" '
|
||||||
|
'fill="#666">%.0f</text>\n' % (Rand - 8, y + 4, wert) )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="18" y="%d" text-anchor="middle" font-size="12" '
|
||||||
|
'fill="#333" transform="rotate(-90 18 %d)">Wertigkeit '
|
||||||
|
'(hoeher = besser)</text>\n' % (Hoehe // 2, Hoehe // 2) )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%d" y="%d" text-anchor="middle" font-size="12" '
|
||||||
|
'fill="#333">Zyklus-Aktion (Zeit)</text>\n'
|
||||||
|
% (Breite // 2, Hoehe - 18) )
|
||||||
|
|
||||||
|
# X-Beschriftung: Aktionsbuchstaben (bei wenigen Punkten alle,
|
||||||
|
# sonst ausgeduennt, damit die Achse lesbar bleibt)
|
||||||
|
Schritt = max(1, N // 30)
|
||||||
|
for i, p in enumerate(self.Punkte):
|
||||||
|
if i % Schritt == 0 or i == N - 1:
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%.1f" y="%d" text-anchor="middle" font-size="10" '
|
||||||
|
'fill="#999">%s</text>\n' % (X(i), Hoehe - Rand + 16, p[1]) )
|
||||||
|
|
||||||
|
# die drei Kurven
|
||||||
|
Kurven = [
|
||||||
|
Polyline(2, '#2f6f4f', 'beste Loesung'),
|
||||||
|
Polyline(3, '#c08a2d', 'Durchschnitt'),
|
||||||
|
Polyline(4, '#a03030', 'schlechteste Loesung') ]
|
||||||
|
for (svg, _besch, _farbe) in Kurven:
|
||||||
|
Teile.append( svg )
|
||||||
|
|
||||||
|
# Legende oben rechts
|
||||||
|
LegX = Breite - Rand - 160
|
||||||
|
LegY = Rand + 10
|
||||||
|
for k, (_svg, besch, farbe) in enumerate(Kurven):
|
||||||
|
y = LegY + k * 18
|
||||||
|
Teile.append(
|
||||||
|
'<line x1="%d" y1="%d" x2="%d" y2="%d" stroke="%s" '
|
||||||
|
'stroke-width="2"/>\n' % (LegX, y, LegX + 24, y, farbe) )
|
||||||
|
Teile.append(
|
||||||
|
'<text x="%d" y="%d" font-size="11" fill="#333">%s</text>\n'
|
||||||
|
% (LegX + 30, y + 4, besch) )
|
||||||
|
|
||||||
|
Teile.append( '</svg>\n' )
|
||||||
|
|
||||||
|
fout = open( OutputSVG, 'w' )
|
||||||
|
fout.writelines( Teile )
|
||||||
|
fout.close()
|
||||||
|
|
||||||
|
|
||||||
class Farm:
|
class Farm:
|
||||||
"""enthaelt und pflegt Loesungsobjekte, kreuzt, mutiert, selektiert sie"""
|
"""enthaelt und pflegt Loesungsobjekte, kreuzt, mutiert, selektiert sie"""
|
||||||
def __init__(self, Zyklus, Klasse, *Arguments, **keywords):
|
def __init__(self, Zyklus, Klasse, *Arguments, **keywords):
|
||||||
"""initialisiere die Farm
|
"""initialisiere die Farm
|
||||||
|
|
||||||
mit einem definerten Zyklus fuer die Zucht und dem gewunschten zu Zuchtobjekt
|
mit einem definerten Zyklus fuer die Zucht und dem gewunschten zu Zuchtobjekt
|
||||||
|
|
||||||
|
Beobachtung: self.Entwicklung zeichnet nach jeder Zyklus-Aktion
|
||||||
|
den Pool-Zustand auf und laesst sich per alsSVG() visualisieren.
|
||||||
"""
|
"""
|
||||||
self.Position = 0
|
self.Position = 0
|
||||||
self.Pool = []
|
self.Pool = []
|
||||||
self.PoolNeu = []
|
self.PoolNeu = []
|
||||||
self.Zyklus = Zyklus
|
self.Zyklus = Zyklus
|
||||||
self.Klasse = Klasse
|
self.Klasse = Klasse
|
||||||
|
self.Entwicklung = Entwicklung()
|
||||||
for Aktion, Zahl in zip(Zyklus.Abfolge,Zyklus.Anzahl):
|
for Aktion, Zahl in zip(Zyklus.Abfolge,Zyklus.Anzahl):
|
||||||
#print 'Aktion:',Aktion
|
#print 'Aktion:',Aktion
|
||||||
#print 'Zahl:',Zahl
|
#print 'Zahl:',Zahl
|
||||||
@@ -101,6 +279,11 @@ class Farm:
|
|||||||
self.NeueGeneration()
|
self.NeueGeneration()
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
# nach jeder Aktion den aktuellen Pool-Zustand aufzeichnen.
|
||||||
|
# Der beobachtete Pool ist der, in dem gerade die Loesungen
|
||||||
|
# liegen: PoolNeu, sobald dort etwas gesammelt wurde, sonst Pool.
|
||||||
|
self.Entwicklung.erfassen(
|
||||||
|
Aktion, self.PoolNeu if self.PoolNeu else self.Pool )
|
||||||
def LoesungenErzeugen(self, N, Klasse, *Arguments, **keywords):
|
def LoesungenErzeugen(self, N, Klasse, *Arguments, **keywords):
|
||||||
""" Erzeuge Loesungen"""
|
""" Erzeuge Loesungen"""
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
|
|||||||
@@ -18,16 +18,21 @@ import optparse
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
# Kommandozeilenoption --indir: Verzeichnis mit den Eingabedateien
|
# Kommandozeilenoption --indir: Verzeichnis mit den Eingabedateien
|
||||||
# (tische.ini, bestellung.xml) und Ziel fuer die Ausgabedateien
|
# (tische.ini, bestellung.json) und Ziel fuer die Ausgabedateien
|
||||||
# (TischePersonen.txt, PersonenTische.csv)
|
# (TischePersonen.txt, PersonenTische.csv)
|
||||||
parser = optparse.OptionParser()
|
parser = optparse.OptionParser()
|
||||||
parser.add_option( "--indir", dest="indir", default=None,
|
parser.add_option( "--indir", dest="indir", default=None,
|
||||||
help="Verzeichnis mit tische.ini und bestellung.xml; "
|
help="Verzeichnis mit tische.ini und bestellung.json; "
|
||||||
"dort werden auch TischePersonen.txt und PersonenTische.csv abgelegt" )
|
"dort werden auch TischePersonen.txt und PersonenTische.csv abgelegt" )
|
||||||
parser.add_option( "--tosvg", dest="tosvg", action="store_true", default=False,
|
parser.add_option( "--tosvg", dest="tosvg", action="store_true", default=False,
|
||||||
help="zusaetzlich eine Sitzplatzverteilung.svg im --indir Verzeichnis "
|
help="zusaetzlich eine Sitzplatzverteilung.svg im --indir Verzeichnis "
|
||||||
"erzeugen (Tische als weisse Kreise, Personen als farbige "
|
"erzeugen (Tische als weisse Kreise, Personen als farbige "
|
||||||
"Kreise je Gruppe)" )
|
"Kreise je Gruppe)" )
|
||||||
|
parser.add_option( "--show-development", dest="showdev", action="store_true",
|
||||||
|
default=False,
|
||||||
|
help="zusaetzlich eine Entwicklung.svg im --indir Verzeichnis "
|
||||||
|
"erzeugen: Verlauf der Loesungsfindung (Zeitachse nach rechts, "
|
||||||
|
"beste/durchschnittliche/schlechteste Wertigkeit auf der Y-Achse)" )
|
||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
if options.indir is None:
|
if options.indir is None:
|
||||||
@@ -51,12 +56,13 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
# lade Eingabedateien
|
# lade Eingabedateien
|
||||||
Tischconfig = os.path.join( InDir, 'tische.ini' )
|
Tischconfig = os.path.join( InDir, 'tische.ini' )
|
||||||
Bestellung = os.path.join( InDir, 'bestellung.xml' )
|
Bestellung = os.path.join( InDir, 'bestellung.json' )
|
||||||
|
|
||||||
# lade Ausgabedateien
|
# lade Ausgabedateien
|
||||||
AusgabeTP= os.path.join( InDir, 'TischePersonen.txt' )
|
AusgabeTP= os.path.join( InDir, 'TischePersonen.txt' )
|
||||||
AusgabePT = os.path.join( InDir, 'PersonenTische.csv' )
|
AusgabePT = os.path.join( InDir, 'PersonenTische.csv' )
|
||||||
AusgabeSVG = os.path.join( InDir, 'Sitzplatzverteilung.svg' )
|
AusgabeSVG = os.path.join( InDir, 'Sitzplatzverteilung.svg' )
|
||||||
|
AusgabeEntwicklung = os.path.join( InDir, 'Entwicklung.svg' )
|
||||||
|
|
||||||
Z = Zyklus()
|
Z = Zyklus()
|
||||||
Z.laden( Zyklusconfig, Zyklusart )
|
Z.laden( Zyklusconfig, Zyklusart )
|
||||||
@@ -68,8 +74,8 @@ if __name__ == '__main__':
|
|||||||
TE.laden( Tischconfig )
|
TE.laden( Tischconfig )
|
||||||
print(TE)
|
print(TE)
|
||||||
|
|
||||||
InputFile = XMLConfig()
|
InputFile = JSONConfig()
|
||||||
[ PN, GN, VIPGruppe, VIPListePT ] = InputFile.laden( Bestellung )
|
[ PN, GN, VIPGruppe, VIPListePT, GruppenNamen ] = InputFile.laden( Bestellung )
|
||||||
print(PN)
|
print(PN)
|
||||||
print(GN)
|
print(GN)
|
||||||
print(VIPGruppe)
|
print(VIPGruppe)
|
||||||
@@ -83,6 +89,9 @@ if __name__ == '__main__':
|
|||||||
S.speichern( AusgabeTP, AusgabePT )
|
S.speichern( AusgabeTP, AusgabePT )
|
||||||
if options.tosvg:
|
if options.tosvg:
|
||||||
S.alsSVG( AusgabeSVG )
|
S.alsSVG( AusgabeSVG )
|
||||||
|
if options.showdev:
|
||||||
|
F1.Entwicklung.alsSVG( AusgabeEntwicklung )
|
||||||
|
print( "Entwicklungsverlauf geschrieben:", AusgabeEntwicklung )
|
||||||
|
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -0,0 +1,376 @@
|
|||||||
|
"""
|
||||||
|
Plattformunabhaengige Prozessverwaltung fuer die Web-Testinstanz
|
||||||
|
(ersetzt die fruehere PowerShell-Loesung run_web_helper.ps1, damit
|
||||||
|
dasselbe Skript unter Windows und Linux funktioniert).
|
||||||
|
|
||||||
|
Aufruf (ueber bin/run_web.bat bzw. bin/run_web.sh oder direkt):
|
||||||
|
|
||||||
|
python libs/webserver.py start # Server im Hintergrund starten
|
||||||
|
python libs/webserver.py stop # Server beenden
|
||||||
|
python libs/webserver.py status # laeuft er? PID? Port?
|
||||||
|
python libs/webserver.py run # im Vordergrund (Strg+C beendet)
|
||||||
|
python libs/webserver.py # wie "run"
|
||||||
|
|
||||||
|
--port N weicht vom Standardport 8000 ab
|
||||||
|
|
||||||
|
Designentscheidung gegen Zombie-Prozesse: Im Hintergrundbetrieb
|
||||||
|
("start") laeuft uvicorn OHNE --reload als ein einzelner Prozess,
|
||||||
|
der per PID-Datei sauber beendet werden kann. Der Auto-Reload
|
||||||
|
(--reload) startet Arbeitsprozesse als multiprocessing-Spawn-Kinder,
|
||||||
|
die bei unsanftem Ende des Reloaders MIT geerbtem Server-Socket
|
||||||
|
weiterleben und den Port unsichtbar weiterbedienen koennen (unter
|
||||||
|
Windows tauchen sie weder als Socket-Besitzer noch mit "uvicorn" in
|
||||||
|
der Kommandozeile auf). Deshalb gibt es --reload nur im
|
||||||
|
Vordergrundmodus ("run"), wo Strg+C alles gemeinsam beendet.
|
||||||
|
"""
|
||||||
|
|
||||||
|
__author__ = "Michael Stangl"
|
||||||
|
__copyright__ = "Copyright (c) 2026 Michael Stangl"
|
||||||
|
__license__ = "Python"
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import signal
|
||||||
|
import socket
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import urllib.request
|
||||||
|
|
||||||
|
BASISDIR = os.path.dirname( os.path.dirname( os.path.abspath( __file__ ) ) )
|
||||||
|
WEBDIR = os.path.join( BASISDIR, 'web' )
|
||||||
|
LOGDIR = os.path.join( BASISDIR, 'log' )
|
||||||
|
PIDDATEI = os.path.join( LOGDIR, 'run_web.pid' )
|
||||||
|
LOGDATEI = os.path.join( LOGDIR, 'run_web.log' )
|
||||||
|
HOST = '127.0.0.1'
|
||||||
|
STANDARDPORT = 8000
|
||||||
|
APPTITEL = 'Sitz & Platz' # steht im OpenAPI-Titel von web/main.py
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Sonden
|
||||||
|
def PortOffen(Port):
|
||||||
|
"""True, wenn auf dem Port etwas Verbindungen annimmt"""
|
||||||
|
with socket.socket( socket.AF_INET, socket.SOCK_STREAM ) as s:
|
||||||
|
s.settimeout( 1.0 )
|
||||||
|
return s.connect_ex( (HOST, Port) ) == 0
|
||||||
|
|
||||||
|
|
||||||
|
def IstUnsereApp(Port):
|
||||||
|
"""True/False, ob auf dem Port unsere FastAPI-App antwortet;
|
||||||
|
None, wenn keine (verwertbare) Antwort kommt"""
|
||||||
|
try:
|
||||||
|
with urllib.request.urlopen(
|
||||||
|
'http://%s:%d/openapi.json' % (HOST, Port), timeout=3 ) as antwort:
|
||||||
|
daten = json.load( antwort )
|
||||||
|
return APPTITEL in daten.get( 'info', {} ).get( 'title', '' )
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def PidLebt(Pid):
|
||||||
|
"""True, wenn der Prozess existiert (portabel)"""
|
||||||
|
if Pid is None or Pid <= 0:
|
||||||
|
return False
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
# os.kill(pid, 0) ist unter Windows unbrauchbar (wirft WinError 87
|
||||||
|
# statt zu pruefen). Stattdessen im Toolhelp-Snapshot nachsehen.
|
||||||
|
return Pid in _ProzessTabelle()
|
||||||
|
try:
|
||||||
|
os.kill( Pid, 0 )
|
||||||
|
return True
|
||||||
|
except PermissionError:
|
||||||
|
return True # existiert, gehoert aber jemand anderem
|
||||||
|
except OSError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------- PID-Datei
|
||||||
|
def PidLesen():
|
||||||
|
try:
|
||||||
|
with open( PIDDATEI ) as f:
|
||||||
|
return int( f.read().strip() )
|
||||||
|
except (OSError, ValueError):
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def PidSchreiben(Pid):
|
||||||
|
os.makedirs( LOGDIR, exist_ok=True )
|
||||||
|
with open( PIDDATEI, 'w' ) as f:
|
||||||
|
f.write( '%d\n' % Pid )
|
||||||
|
|
||||||
|
|
||||||
|
def PidLoeschen():
|
||||||
|
try:
|
||||||
|
os.remove( PIDDATEI )
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def ListenerPid(Port):
|
||||||
|
"""PID des Prozesses, der auf dem Port lauscht (Fallback, wenn die
|
||||||
|
PID-Datei fehlt); None wenn nicht feststellbar"""
|
||||||
|
try:
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
ausgabe = subprocess.run(
|
||||||
|
['netstat', '-ano', '-p', 'tcp'],
|
||||||
|
capture_output=True, text=True, timeout=10 ).stdout
|
||||||
|
for zeile in ausgabe.splitlines():
|
||||||
|
teile = zeile.split()
|
||||||
|
# Zustandsspalte NICHT auf "LISTENING" pruefen - netstat
|
||||||
|
# ist lokalisiert (deutsch: "ABHOEREN"). Ein Listener ist
|
||||||
|
# an der Gegenstelle 0.0.0.0:0 erkennbar; PID = letzte Spalte.
|
||||||
|
if ( len(teile) >= 5 and teile[0] == 'TCP'
|
||||||
|
and teile[1].endswith( ':%d' % Port )
|
||||||
|
and teile[2] in ('0.0.0.0:0', '[::]:0') ):
|
||||||
|
return int( teile[-1] )
|
||||||
|
else:
|
||||||
|
ausgabe = subprocess.run(
|
||||||
|
['ss', '-tlnp'],
|
||||||
|
capture_output=True, text=True, timeout=10 ).stdout
|
||||||
|
for zeile in ausgabe.splitlines():
|
||||||
|
if ':%d ' % Port in zeile and 'pid=' in zeile:
|
||||||
|
return int( zeile.split('pid=')[1].split(',')[0] )
|
||||||
|
except (OSError, ValueError, subprocess.SubprocessError):
|
||||||
|
pass
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------- Prozessbaum-Hilfen
|
||||||
|
def _ProzessTabelle():
|
||||||
|
"""{ Pid: (ElternPid, Prozessname) } aller laufenden Prozesse -
|
||||||
|
Windows ueber einen Toolhelp-Snapshot (ctypes, Standardbibliothek),
|
||||||
|
Linux ueber /proc"""
|
||||||
|
tabelle = {}
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
import ctypes
|
||||||
|
import ctypes.wintypes as wt
|
||||||
|
|
||||||
|
class PROCESSENTRY32(ctypes.Structure):
|
||||||
|
_fields_ = [
|
||||||
|
('dwSize', wt.DWORD), ('cntUsage', wt.DWORD),
|
||||||
|
('th32ProcessID', wt.DWORD),
|
||||||
|
('th32DefaultHeapID', ctypes.POINTER( ctypes.c_ulong )),
|
||||||
|
('th32ModuleID', wt.DWORD), ('cntThreads', wt.DWORD),
|
||||||
|
('th32ParentProcessID', wt.DWORD),
|
||||||
|
('pcPriClassBase', ctypes.c_long),
|
||||||
|
('dwFlags', wt.DWORD), ('szExeFile', ctypes.c_char * 260) ]
|
||||||
|
|
||||||
|
TH32CS_SNAPPROCESS = 0x2
|
||||||
|
k32 = ctypes.windll.kernel32
|
||||||
|
schnappschuss = k32.CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 )
|
||||||
|
if schnappschuss == -1:
|
||||||
|
return tabelle
|
||||||
|
eintrag = PROCESSENTRY32()
|
||||||
|
eintrag.dwSize = ctypes.sizeof( PROCESSENTRY32 )
|
||||||
|
if k32.Process32First( schnappschuss, ctypes.byref( eintrag ) ):
|
||||||
|
while True:
|
||||||
|
tabelle[ int(eintrag.th32ProcessID) ] = (
|
||||||
|
int(eintrag.th32ParentProcessID),
|
||||||
|
eintrag.szExeFile.decode( errors='replace' ).lower() )
|
||||||
|
if not k32.Process32Next( schnappschuss,
|
||||||
|
ctypes.byref( eintrag ) ):
|
||||||
|
break
|
||||||
|
k32.CloseHandle( schnappschuss )
|
||||||
|
else:
|
||||||
|
for name in os.listdir( '/proc' ):
|
||||||
|
if not name.isdigit():
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
with open( '/proc/%s/stat' % name ) as f:
|
||||||
|
stat = f.read()
|
||||||
|
# Format: pid (comm) zustand ppid ... - comm kann
|
||||||
|
# Leerzeichen enthalten, daher an der Klammer trennen
|
||||||
|
kommando = stat[ stat.index('(') + 1 : stat.rindex(')') ]
|
||||||
|
felder = stat[ stat.rindex(')') + 2 : ].split()
|
||||||
|
tabelle[ int(name) ] = ( int(felder[1]), kommando.lower() )
|
||||||
|
except (OSError, ValueError, IndexError):
|
||||||
|
continue
|
||||||
|
return tabelle
|
||||||
|
|
||||||
|
|
||||||
|
def ProzessWurzel(Pid):
|
||||||
|
"""laeuft vom Prozess die Elternkette hoch, solange die Eltern auch
|
||||||
|
Python-Prozesse sind, und liefert die Wurzel des Python-Baums.
|
||||||
|
Noetig fuer fremde/alte --reload-Server: wird nur der Arbeits-
|
||||||
|
prozess beendet, startet der Reloader ihn sofort neu."""
|
||||||
|
tabelle = _ProzessTabelle()
|
||||||
|
aktuell = Pid
|
||||||
|
for _ in range( 10 ): # Schutz gegen Zyklen
|
||||||
|
eintrag = tabelle.get( aktuell )
|
||||||
|
if eintrag is None:
|
||||||
|
break
|
||||||
|
eltern, _name = eintrag
|
||||||
|
elternEintrag = tabelle.get( eltern )
|
||||||
|
if elternEintrag is None or not elternEintrag[1].startswith( 'python' ):
|
||||||
|
break
|
||||||
|
aktuell = eltern
|
||||||
|
return aktuell
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------- Aktionen
|
||||||
|
def UvicornKommando(Port, Reload):
|
||||||
|
Kommando = [ sys.executable, '-m', 'uvicorn', 'main:app',
|
||||||
|
'--app-dir', WEBDIR, '--port', str(Port) ]
|
||||||
|
if Reload:
|
||||||
|
Kommando.append( '--reload' )
|
||||||
|
return Kommando
|
||||||
|
|
||||||
|
|
||||||
|
def Starten(Port):
|
||||||
|
if PortOffen( Port ):
|
||||||
|
if IstUnsereApp( Port ):
|
||||||
|
print( 'Server laeuft bereits: http://localhost:%d' % Port )
|
||||||
|
else:
|
||||||
|
print( 'FEHLER: Port %d ist von einem fremden Programm belegt.' % Port )
|
||||||
|
return 1
|
||||||
|
|
||||||
|
os.makedirs( LOGDIR, exist_ok=True )
|
||||||
|
logdatei = open( LOGDATEI, 'w' )
|
||||||
|
|
||||||
|
# vom Terminal abkoppeln, damit der Server das Schliessen der
|
||||||
|
# Konsole ueberlebt; eigene Prozessgruppe fuer sauberes Beenden
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
flags = ( subprocess.DETACHED_PROCESS
|
||||||
|
| subprocess.CREATE_NEW_PROCESS_GROUP )
|
||||||
|
prozess = subprocess.Popen(
|
||||||
|
UvicornKommando( Port, Reload=False ),
|
||||||
|
stdout=logdatei, stderr=subprocess.STDOUT,
|
||||||
|
cwd=BASISDIR, creationflags=flags )
|
||||||
|
else:
|
||||||
|
prozess = subprocess.Popen(
|
||||||
|
UvicornKommando( Port, Reload=False ),
|
||||||
|
stdout=logdatei, stderr=subprocess.STDOUT,
|
||||||
|
cwd=BASISDIR, start_new_session=True )
|
||||||
|
PidSchreiben( prozess.pid )
|
||||||
|
|
||||||
|
# warten bis der Port antwortet (oder der Prozess frueh stirbt)
|
||||||
|
for _ in range( 30 ):
|
||||||
|
if prozess.poll() is not None:
|
||||||
|
print( 'FEHLER: Server sofort wieder beendet - siehe %s' % LOGDATEI )
|
||||||
|
PidLoeschen()
|
||||||
|
return 1
|
||||||
|
if PortOffen( Port ):
|
||||||
|
print( 'Server laeuft: http://localhost:%d (PID %d, Log: %s)'
|
||||||
|
% (Port, prozess.pid, os.path.relpath( LOGDATEI, BASISDIR )) )
|
||||||
|
print( 'Hinweis: Hintergrundbetrieb ohne Auto-Reload - fuer '
|
||||||
|
'Entwicklung mit Reload "run" im Vordergrund nutzen.' )
|
||||||
|
return 0
|
||||||
|
time.sleep( 0.5 )
|
||||||
|
print( 'FEHLER: Server antwortet nicht auf Port %d - siehe %s'
|
||||||
|
% (Port, LOGDATEI) )
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
def BaumBeenden(Pid):
|
||||||
|
"""beendet einen Prozess samt Kindprozessen (portabel)"""
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
subprocess.run( ['taskkill', '/PID', str(Pid), '/T', '/F'],
|
||||||
|
capture_output=True )
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
os.killpg( os.getpgid( Pid ), signal.SIGTERM )
|
||||||
|
except (ProcessLookupError, PermissionError, OSError):
|
||||||
|
try:
|
||||||
|
os.kill( Pid, signal.SIGTERM )
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
# kurze Gnadenfrist, dann hart nachsetzen
|
||||||
|
for _ in range( 10 ):
|
||||||
|
if not PidLebt( Pid ):
|
||||||
|
return
|
||||||
|
time.sleep( 0.3 )
|
||||||
|
try:
|
||||||
|
os.killpg( os.getpgid( Pid ), signal.SIGKILL )
|
||||||
|
except (ProcessLookupError, PermissionError, OSError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def Stoppen(Port):
|
||||||
|
gefunden = False
|
||||||
|
|
||||||
|
Pid = PidLesen()
|
||||||
|
if Pid is not None and PidLebt( Pid ):
|
||||||
|
BaumBeenden( Pid )
|
||||||
|
gefunden = True
|
||||||
|
|
||||||
|
# Fallback: PID-Datei fehlt/veraltet, aber es lauscht noch jemand -
|
||||||
|
# dann die Wurzel des Python-Prozessbaums beenden (sonst startet ein
|
||||||
|
# --reload-Elternprozess den abgeschossenen Worker sofort neu)
|
||||||
|
if PortOffen( Port ):
|
||||||
|
LPid = ListenerPid( Port )
|
||||||
|
if LPid is not None and PidLebt( LPid ):
|
||||||
|
BaumBeenden( ProzessWurzel( LPid ) )
|
||||||
|
gefunden = True
|
||||||
|
|
||||||
|
# nachpruefen, ob der Port wirklich frei geworden ist
|
||||||
|
for _ in range( 10 ):
|
||||||
|
if not PortOffen( Port ):
|
||||||
|
break
|
||||||
|
time.sleep( 0.3 )
|
||||||
|
PidLoeschen()
|
||||||
|
|
||||||
|
if PortOffen( Port ):
|
||||||
|
print( 'WARNUNG: Auf Port %d antwortet immer noch etwas. Moeglicher '
|
||||||
|
'verwaister Prozess mit geerbtem Socket - Kandidaten mit '
|
||||||
|
'"netstat -ano" (Windows) bzw. "ss -tlnp" (Linux) suchen.'
|
||||||
|
% Port )
|
||||||
|
return 1
|
||||||
|
print( 'Beendet.' if gefunden else 'Es lief nichts.' )
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def Status(Port):
|
||||||
|
Pid = PidLesen()
|
||||||
|
if PortOffen( Port ):
|
||||||
|
Zusatz = ''
|
||||||
|
if Pid is not None and PidLebt( Pid ):
|
||||||
|
# uvicorn haelt den Port oft in einem Kindprozess des in der
|
||||||
|
# PID-Datei vermerkten Hauptprozesses - das ist derselbe Server
|
||||||
|
Zusatz = ' (PID %d)' % Pid
|
||||||
|
elif ( LPid := ListenerPid( Port ) ) is not None:
|
||||||
|
Zusatz = ' (Listener-PID %d, keine PID-Datei)' % LPid
|
||||||
|
if IstUnsereApp( Port ):
|
||||||
|
print( 'LAEUFT: http://localhost:%d%s' % (Port, Zusatz) )
|
||||||
|
return 0
|
||||||
|
print( 'BELEGT: Port %d antwortet, aber nicht mit unserer App%s'
|
||||||
|
% (Port, Zusatz) )
|
||||||
|
return 1
|
||||||
|
if Pid is not None and PidLebt( Pid ):
|
||||||
|
print( 'UNKLAR: Prozess %d aus der PID-Datei lebt, aber Port %d '
|
||||||
|
'antwortet nicht (Startphase oder haengt?)' % (Pid, Port) )
|
||||||
|
return 1
|
||||||
|
print( 'GESTOPPT: kein Server auf Port %d' % Port )
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
def Vordergrund(Port):
|
||||||
|
print( 'Starte Web-Testinstanz im Vordergrund mit Auto-Reload '
|
||||||
|
'(Strg+C zum Beenden) ...' )
|
||||||
|
try:
|
||||||
|
return subprocess.call( UvicornKommando( Port, Reload=True ),
|
||||||
|
cwd=BASISDIR )
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------ Main
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='verwaltet die lokale Web-Testinstanz (FastAPI/uvicorn)' )
|
||||||
|
parser.add_argument( 'aktion', nargs='?', default='run',
|
||||||
|
choices=['start', 'stop', 'status', 'run'],
|
||||||
|
help='start=Hintergrund, stop=beenden, status=anzeigen, '
|
||||||
|
'run=Vordergrund mit Auto-Reload (Standard)' )
|
||||||
|
parser.add_argument( '--port', type=int, default=STANDARDPORT,
|
||||||
|
help='Port der Testinstanz (Standard: %d)' % STANDARDPORT )
|
||||||
|
argumente = parser.parse_args()
|
||||||
|
|
||||||
|
if argumente.aktion == 'start':
|
||||||
|
sys.exit( Starten( argumente.port ) )
|
||||||
|
elif argumente.aktion == 'stop':
|
||||||
|
sys.exit( Stoppen( argumente.port ) )
|
||||||
|
elif argumente.aktion == 'status':
|
||||||
|
sys.exit( Status( argumente.port ) )
|
||||||
|
else:
|
||||||
|
sys.exit( Vordergrund( argumente.port ) )
|
||||||
@@ -18,7 +18,8 @@ import unittest
|
|||||||
|
|
||||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'libs'))
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'libs'))
|
||||||
|
|
||||||
from Strukturdaten import Gruppe, Gruppen, Person, Sitzplatzverteilung, Strafliste, Tisch, Tische
|
from Strukturdaten import Gruppe, Gruppen, JSONConfig, Person, Sitzplatzverteilung, Strafliste, Tisch, Tische
|
||||||
|
from ga import Entwicklung, _StringAusdruck
|
||||||
|
|
||||||
IMAGES_DIR = os.path.join(os.path.dirname(__file__), '..', 'doc', 'images')
|
IMAGES_DIR = os.path.join(os.path.dirname(__file__), '..', 'doc', 'images')
|
||||||
|
|
||||||
@@ -169,5 +170,109 @@ class TestSechsTischeKreisDreiergruppen(unittest.TestCase):
|
|||||||
"Tische %s der Gruppe %s sind keine Nachbarn" % (SV.Gid_Tid[G.Id], G.Id) )
|
"Tische %s der Gruppe %s sind keine Nachbarn" % (SV.Gid_Tid[G.Id], G.Id) )
|
||||||
|
|
||||||
|
|
||||||
|
class TestJSONConfig(unittest.TestCase):
|
||||||
|
"""Parsen der bestellung.json: Gruppen, VIP-Bindung, Anzahl-Expansion."""
|
||||||
|
|
||||||
|
def test_gruppen_vips_und_sammelbuchung(self):
|
||||||
|
Daten = {
|
||||||
|
"gruppen": [
|
||||||
|
{
|
||||||
|
"name": "Brautpaar",
|
||||||
|
"tisch": 1,
|
||||||
|
"personen": [
|
||||||
|
{"vorname": "Julia", "nachname": "Brandt"},
|
||||||
|
{"vorname": "Daniel", "nachname": "Sommer", "titel": "Dr."},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Huber",
|
||||||
|
"personen": [
|
||||||
|
{"vorname": "Anna", "nachname": "Huber"},
|
||||||
|
{"vorname": "Berta", "nachname": "Huber"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Musikverein",
|
||||||
|
"anzahl": 5,
|
||||||
|
"personen": [ {"vorname": "Gast", "nachname": "Musikverein"} ],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
PN, GN, VIPGruppe, VipHash, GruppenNamen = JSONConfig().HandleBestellung(Daten)
|
||||||
|
|
||||||
|
# VIP-Gruppe: beide ans Tisch 1 gebunden, nicht in den GA-Gruppen
|
||||||
|
self.assertEqual( VIPGruppe.Anzahl(), 2 )
|
||||||
|
self.assertEqual( set(VipHash.values()), {1} )
|
||||||
|
self.assertEqual( len(VipHash), 2 )
|
||||||
|
|
||||||
|
# regulaere Gruppen: Familie Huber (2) + Musikverein (5x expandiert) = 7
|
||||||
|
self.assertEqual( GN.NLeute, 7 )
|
||||||
|
self.assertEqual( len(GN.GruppenListe), 2 )
|
||||||
|
|
||||||
|
# Sammelbuchung: die eine Musikverein-Person wurde 5x vervielfacht
|
||||||
|
Groessen = sorted( G.Anzahl() for G in GN.GruppenListe )
|
||||||
|
self.assertEqual( Groessen, [2, 5] )
|
||||||
|
|
||||||
|
# Anzeigenamen kommen durch
|
||||||
|
self.assertIn( "Familie Huber", GruppenNamen.values() )
|
||||||
|
self.assertIn( "Musikverein", GruppenNamen.values() )
|
||||||
|
|
||||||
|
def test_fehlende_pflichtfelder_werfen_fehler(self):
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
JSONConfig().HandleBestellung( {"keine_gruppen": []} )
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
JSONConfig().HandleBestellung(
|
||||||
|
{"gruppen": [ {"personen": [ {"vorname": "Nur"} ]} ]} )
|
||||||
|
|
||||||
|
|
||||||
|
class TestStringAusdruck(unittest.TestCase):
|
||||||
|
"""Der sichere Zyklus-Ausdruck-Auswerter (Ersatz fuer eval)."""
|
||||||
|
|
||||||
|
def test_verkettung_und_vervielfachung(self):
|
||||||
|
self.assertEqual(
|
||||||
|
_StringAusdruck("'e,'+'s,z,m,j,z,'*3+'s'"),
|
||||||
|
'e,s,z,m,j,z,s,z,m,j,z,s,z,m,j,z,s' )
|
||||||
|
self.assertEqual( _StringAusdruck("'e,s'"), 'e,s' )
|
||||||
|
|
||||||
|
def test_lehnt_code_ab(self):
|
||||||
|
# kein Funktionsaufruf, keine Namen, kein Import
|
||||||
|
for boese in ("__import__('os')", "open('x')", "1+1", "a+'b'"):
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
_StringAusdruck(boese)
|
||||||
|
|
||||||
|
|
||||||
|
class TestEntwicklung(unittest.TestCase):
|
||||||
|
"""Das Beobachtungsobjekt zeichnet den Verlauf auf und rendert SVG."""
|
||||||
|
|
||||||
|
class _L:
|
||||||
|
def __init__(self, value):
|
||||||
|
self.value = value
|
||||||
|
|
||||||
|
def test_erfassen_und_svg(self):
|
||||||
|
E = Entwicklung()
|
||||||
|
E.erfassen( 'e', [self._L(-200), self._L(-150), self._L(-90)] )
|
||||||
|
E.erfassen( 's', [self._L(-90), self._L(-70)] )
|
||||||
|
E.erfassen( 'm', [self._L(-70), self._L(-40)] )
|
||||||
|
|
||||||
|
self.assertEqual( len(E.Punkte), 3 )
|
||||||
|
# je Punkt: (index, aktion, best, schnitt, schlecht, N)
|
||||||
|
_i, aktion, best, schnitt, schlecht, n = E.Punkte[0]
|
||||||
|
self.assertEqual( aktion, 'e' )
|
||||||
|
self.assertEqual( best, -90 )
|
||||||
|
self.assertEqual( schlecht, -200 )
|
||||||
|
self.assertEqual( n, 3 )
|
||||||
|
|
||||||
|
Pfad = os.path.join( IMAGES_DIR, 'test_entwicklung.svg' )
|
||||||
|
E.alsSVG( Pfad )
|
||||||
|
with open(Pfad) as f:
|
||||||
|
svg = f.read()
|
||||||
|
self.assertIn( '<svg', svg )
|
||||||
|
self.assertEqual( svg.count('<polyline'), 3 ) # best/schnitt/schlecht
|
||||||
|
|
||||||
|
def test_leere_entwicklung_wirft_beim_svg(self):
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
Entwicklung().alsSVG( os.path.join(IMAGES_DIR, 'leer.svg') )
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ Endpunkte (siehe auch /docs — interaktive Swagger-UI von FastAPI):
|
|||||||
POST /sitzung — legt eine Arbeits-Session an
|
POST /sitzung — legt eine Arbeits-Session an
|
||||||
GET /sitzung/{id} — Status der Session
|
GET /sitzung/{id} — Status der Session
|
||||||
POST /sitzung/{id}/tische — Tisch-Layout als JSON (Ersatz tische.ini)
|
POST /sitzung/{id}/tische — Tisch-Layout als JSON (Ersatz tische.ini)
|
||||||
POST /sitzung/{id}/personen — Gaesteliste als CSV-Upload (Ersatz bestellung.xml)
|
POST /sitzung/{id}/personen — Gaesteliste als CSV-Upload (Ersatz bestellung.json)
|
||||||
POST /sitzung/{id}/berechnen — startet die GA-Optimierung
|
POST /sitzung/{id}/berechnen — startet die GA-Optimierung
|
||||||
GET /sitzung/{id}/ergebnis — Ergebnis als JSON (Tische -> Personen)
|
GET /sitzung/{id}/ergebnis — Ergebnis als JSON (Tische -> Personen)
|
||||||
GET /sitzung/{id}/ergebnis.svg — Ergebnis als SVG (alsSVG aus dem Kern)
|
GET /sitzung/{id}/ergebnis.svg — Ergebnis als SVG (alsSVG aus dem Kern)
|
||||||
@@ -348,7 +348,7 @@ def TischDateiHochladen(SitzungsId: str, datei: UploadFile = File(...)):
|
|||||||
|
|
||||||
@app.post( '/sitzung/{SitzungsId}/personen' )
|
@app.post( '/sitzung/{SitzungsId}/personen' )
|
||||||
def PersonenHochladen(SitzungsId: str, datei: UploadFile = File(...)):
|
def PersonenHochladen(SitzungsId: str, datei: UploadFile = File(...)):
|
||||||
"""Gaesteliste als CSV hochladen (Ersatz fuer bestellung.xml);
|
"""Gaesteliste als CSV hochladen (Ersatz fuer bestellung.json);
|
||||||
Format siehe libs/CSVConfig.py"""
|
Format siehe libs/CSVConfig.py"""
|
||||||
S = _GibSession( SitzungsId )
|
S = _GibSession( SitzungsId )
|
||||||
Rohdaten = datei.file.read()
|
Rohdaten = datei.file.read()
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500" font-family="sans-serif">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<text x="450" y="30" text-anchor="middle" font-size="16" fill="#333">Entwicklung der Loesungsfindung</text>
|
||||||
|
<line x1="60" y1="60" x2="60" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440" x2="840" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440.0" x2="840" y2="440.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="444.0" text-anchor="end" font-size="11" fill="#666">-83</text>
|
||||||
|
<line x1="60" y1="364.0" x2="840" y2="364.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="368.0" text-anchor="end" font-size="11" fill="#666">-75</text>
|
||||||
|
<line x1="60" y1="288.0" x2="840" y2="288.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="292.0" text-anchor="end" font-size="11" fill="#666">-68</text>
|
||||||
|
<line x1="60" y1="212.0" x2="840" y2="212.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="216.0" text-anchor="end" font-size="11" fill="#666">-60</text>
|
||||||
|
<line x1="60" y1="136.0" x2="840" y2="136.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="140.0" text-anchor="end" font-size="11" fill="#666">-53</text>
|
||||||
|
<line x1="60" y1="60.0" x2="840" y2="60.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="64.0" text-anchor="end" font-size="11" fill="#666">-45</text>
|
||||||
|
<text x="18" y="250" text-anchor="middle" font-size="12" fill="#333" transform="rotate(-90 18 250)">Wertigkeit (hoeher = besser)</text>
|
||||||
|
<text x="450" y="482" text-anchor="middle" font-size="12" fill="#333">Zyklus-Aktion (Zeit)</text>
|
||||||
|
<text x="60.0" y="456" text-anchor="middle" font-size="10" fill="#999">e</text>
|
||||||
|
<text x="108.8" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="157.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="206.2" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="255.0" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="303.8" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="352.5" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="401.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="450.0" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="498.8" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="547.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="596.2" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="645.0" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="693.8" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="742.5" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="791.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="840.0" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<polyline points="60.0,80.0 108.8,80.0 157.5,80.0 206.2,60.0 255.0,60.0 303.8,60.0 352.5,60.0 401.2,60.0 450.0,60.0 498.8,60.0 547.5,60.0 596.2,60.0 645.0,60.0 693.8,60.0 742.5,60.0 791.2,60.0 840.0,60.0" fill="none" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,272.0 108.8,132.0 157.5,132.0 206.2,108.0 255.0,116.0 303.8,116.0 352.5,72.0 401.2,72.0 450.0,72.0 498.8,72.0 547.5,72.0 596.2,60.0 645.0,60.0 693.8,60.0 742.5,60.0 791.2,60.0 840.0,60.0" fill="none" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,440.0 108.8,200.0 157.5,200.0 206.2,160.0 255.0,200.0 303.8,200.0 352.5,80.0 401.2,80.0 450.0,80.0 498.8,80.0 547.5,80.0 596.2,60.0 645.0,60.0 693.8,60.0 742.5,60.0 791.2,60.0 840.0,60.0" fill="none" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<line x1="680" y1="70" x2="704" y2="70" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<text x="710" y="74" font-size="11" fill="#333">beste Loesung</text>
|
||||||
|
<line x1="680" y1="88" x2="704" y2="88" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<text x="710" y="92" font-size="11" fill="#333">Durchschnitt</text>
|
||||||
|
<line x1="680" y1="106" x2="704" y2="106" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<text x="710" y="110" font-size="11" fill="#333">schlechteste Loesung</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -1,78 +1,77 @@
|
|||||||
Aksoy, Rainer, = Hof 1, Tisch 13, Nummer 7
|
Aksoy, Rainer, = Hof 1, Tisch 14, Nummer 4
|
||||||
Aksoy, Renate, = Hof 1, Tisch 13, Nummer 2
|
Aksoy, Renate, = Hof 1, Tisch 14, Nummer 2
|
||||||
Aydin, Horst, = Hof 1, Tisch 14, Nummer 6
|
Aydin, Horst, = Hof 1, Tisch 2, Nummer 8
|
||||||
Aydin, Ursula, = Hof 1, Tisch 14, Nummer 8
|
Aydin, Ursula, = Hof 1, Tisch 2, Nummer 3
|
||||||
Barth, Hannelore, = Hof 1, Tisch 9, Nummer 7
|
Barth, Hannelore, = Hof 1, Tisch 9, Nummer 8
|
||||||
Berger, Sergej, = Hof 1, Tisch 2, Nummer 5
|
Berger, Sergej, = Hof 1, Tisch 8, Nummer 5
|
||||||
Brandt, Andreas, = Hof 1, Tisch 15, Nummer 2
|
Brandt, Andreas, = Hof 1, Tisch 2, Nummer 2
|
||||||
Brandt, Anja, = Hof 1, Tisch 15, Nummer 3
|
Brandt, Anja, = Hof 1, Tisch 15, Nummer 8
|
||||||
Brandt, Anton, = Hof 1, Tisch 16, Nummer 14
|
Brandt, Anton, = Hof 1, Tisch 16, Nummer 2
|
||||||
Brandt, Ben, = Hof 1, Tisch 17, Nummer 5
|
Brandt, Ben, = Hof 1, Tisch 17, Nummer 5
|
||||||
Brandt, Daniel, = Hof 1, Tisch 11, Nummer 7
|
Brandt, Daniel, = Hof 1, Tisch 1, Nummer 4
|
||||||
Brandt, Felix, = Hof 1, Tisch 16, Nummer 13
|
Brandt, Felix, = Hof 1, Tisch 16, Nummer 5
|
||||||
Brandt, Frieda, = Hof 1, Tisch 16, Nummer 8
|
Brandt, Frieda, = Hof 1, Tisch 16, Nummer 3
|
||||||
Brandt, Greta, = Hof 1, Tisch 16, Nummer 3
|
Brandt, Greta, = Hof 1, Tisch 16, Nummer 9
|
||||||
Brandt, Helga, = Hof 1, Tisch 1, Nummer 2
|
Brandt, Helga, = Hof 1, Tisch 1, Nummer 3
|
||||||
Brandt, Julia, = Hof 1, Tisch 1, Nummer 9
|
Brandt, Julia, = Hof 1, Tisch 1, Nummer 9
|
||||||
Brandt, Kathrin, = Hof 1, Tisch 11, Nummer 4
|
Brandt, Kathrin, = Hof 1, Tisch 1, Nummer 2
|
||||||
Brandt, Lena, = Hof 1, Tisch 15, Nummer 6
|
Brandt, Lena, = Hof 1, Tisch 2, Nummer 6
|
||||||
Brandt, Milan, = Hof 1, Tisch 15, Nummer 5
|
Brandt, Milan, = Hof 1, Tisch 15, Nummer 4
|
||||||
Brandt, Paul, = Hof 1, Tisch 17, Nummer 6
|
Brandt, Paul, = Hof 1, Tisch 17, Nummer 4
|
||||||
Brandt, Sofia, = Hof 1, Tisch 15, Nummer 8
|
Brandt, Sofia, = Hof 1, Tisch 15, Nummer 9
|
||||||
Brandt, Theo, = Hof 1, Tisch 15, Nummer 4
|
Brandt, Theo, = Hof 1, Tisch 2, Nummer 5
|
||||||
Brandt, Werner, = Hof 1, Tisch 1, Nummer 6
|
Brandt, Werner, = Hof 1, Tisch 1, Nummer 12
|
||||||
Busch, Stefanie, = Hof 1, Tisch 2, Nummer 3
|
Busch, Stefanie, = Hof 1, Tisch 8, Nummer 8
|
||||||
Demir, Elif, = Hof 1, Tisch 10, Nummer 2
|
Demir, Elif, = Hof 1, Tisch 10, Nummer 8
|
||||||
Demir, Hannelore, = Hof 1, Tisch 14, Nummer 5
|
Demir, Hannelore, = Hof 1, Tisch 13, Nummer 5
|
||||||
Demir, Ingrid, = Hof 1, Tisch 14, Nummer 2
|
Demir, Ingrid, = Hof 1, Tisch 13, Nummer 2
|
||||||
Demir, Monika, = Hof 1, Tisch 14, Nummer 3
|
Demir, Monika, = Hof 1, Tisch 13, Nummer 3
|
||||||
Dietrich, Jennifer, = Hof 1, Tisch 2, Nummer 6
|
Dietrich, Jennifer, = Hof 1, Tisch 13, Nummer 7
|
||||||
Dietrich, Nicole, = Hof 1, Tisch 12, Nummer 2
|
Dietrich, Nicole, = Hof 1, Tisch 12, Nummer 6
|
||||||
Erdem, Erika, = Hof 1, Tisch 15, Nummer 9
|
Erdem, Erika, = Hof 1, Tisch 3, Nummer 4
|
||||||
Erdem, Gerhard, = Hof 1, Tisch 9, Nummer 2
|
Erdem, Gerhard, = Hof 1, Tisch 9, Nummer 6
|
||||||
Erdem, Rainer, = Hof 1, Tisch 9, Nummer 3
|
Erdem, Rainer, = Hof 1, Tisch 9, Nummer 7
|
||||||
Esposito, Christian, = Hof 1, Tisch 12, Nummer 8
|
Esposito, Christian, = Hof 1, Tisch 12, Nummer 7
|
||||||
Esposito, Gisela, = Hof 1, Tisch 9, Nummer 6
|
Esposito, Gisela, = Hof 1, Tisch 9, Nummer 2
|
||||||
Esposito, Julia, = Hof 1, Tisch 8, Nummer 4
|
Esposito, Julia, = Hof 1, Tisch 8, Nummer 9
|
||||||
Fischer, Heinz, = Hof 1, Tisch 14, Nummer 4
|
Fischer, Heinz, = Hof 1, Tisch 3, Nummer 2
|
||||||
Fischer, Helga, = Hof 1, Tisch 14, Nummer 7
|
Fischer, Helga, = Hof 1, Tisch 3, Nummer 5
|
||||||
Fischer, Nicole, = Hof 1, Tisch 12, Nummer 4
|
Fischer, Nicole, = Hof 1, Tisch 12, Nummer 8
|
||||||
Fischer, Sven, = Hof 1, Tisch 10, Nummer 3
|
Fischer, Sven, = Hof 1, Tisch 8, Nummer 3
|
||||||
Frank, Erika, = Hof 1, Tisch 9, Nummer 8
|
Frank, Erika, = Hof 1, Tisch 9, Nummer 3
|
||||||
Frank, Nadine, = Hof 1, Tisch 11, Nummer 9
|
Frank, Nadine, = Hof 1, Tisch 11, Nummer 7
|
||||||
Frank, Timo, = Hof 1, Tisch 10, Nummer 4
|
Frank, Timo, = Hof 1, Tisch 10, Nummer 4
|
||||||
Frank, Tobias, = Hof 1, Tisch 1, Nummer 11
|
Frank, Tobias, = Hof 1, Tisch 1, Nummer 5
|
||||||
Franke, Brigitte, = Hof 1, Tisch 9, Nummer 9
|
Franke, Brigitte, = Hof 1, Tisch 9, Nummer 9
|
||||||
Hansen, Olga, = Hof 1, Tisch 11, Nummer 5
|
Hansen, Olga, = Hof 1, Tisch 11, Nummer 3
|
||||||
Hansen, Wolfgang, = Hof 1, Tisch 9, Nummer 5
|
Hansen, Wolfgang, = Hof 1, Tisch 9, Nummer 5
|
||||||
Hoffmann, Lena, = Hof 1, Tisch 12, Nummer 7
|
Hoffmann, Lena, = Hof 1, Tisch 12, Nummer 4
|
||||||
Horn, Daniel, = Hof 1, Tisch 11, Nummer 3
|
Horn, Daniel, = Hof 1, Tisch 11, Nummer 5
|
||||||
Horn, Svenja, = Hof 1, Tisch 2, Nummer 2
|
Horn, Svenja, = Hof 1, Tisch 13, Nummer 4
|
||||||
Klein, Stefan, = Hof 1, Tisch 10, Nummer 5
|
Klein, Stefan, = Hof 1, Tisch 10, Nummer 2
|
||||||
Koch, Andreas, = Hof 1, Tisch 2, Nummer 7
|
Koch, Andreas, = Hof 1, Tisch 8, Nummer 7
|
||||||
Koch, Giovanna, = Hof 1, Tisch 8, Nummer 2
|
Koch, Giovanna, = Hof 1, Tisch 4, Nummer 6
|
||||||
Kovac, Giovanna, = Hof 1, Tisch 8, Nummer 8
|
Kovac, Giovanna, = Hof 1, Tisch 8, Nummer 4
|
||||||
Kraus, Dennis, = Hof 1, Tisch 4, Nummer 4
|
Kraus, Dennis, = Hof 1, Tisch 11, Nummer 6
|
||||||
Kraus, Matteo, = Hof 1, Tisch 16, Nummer 4
|
Kraus, Matteo, = Hof 1, Tisch 16, Nummer 8
|
||||||
Kraus, Melanie, = Hof 1, Tisch 4, Nummer 2
|
Kraus, Melanie, = Hof 1, Tisch 11, Nummer 8
|
||||||
Kuhn, Leni, = Hof 1, Tisch 16, Nummer 11
|
Kuhn, Leni, = Hof 1, Tisch 16, Nummer 10
|
||||||
Kuhn, Sarah, = Hof 1, Tisch 1, Nummer 10
|
Kuhn, Sarah, = Hof 1, Tisch 14, Nummer 3
|
||||||
Kuhn, Stefan, = Hof 1, Tisch 2, Nummer 9
|
Kuhn, Stefan, = Hof 1, Tisch 13, Nummer 8
|
||||||
Kuhn, Timo, = Hof 1, Tisch 1, Nummer 7
|
Kuhn, Timo, = Hof 1, Tisch 14, Nummer 5
|
||||||
Lange, Milan, = Hof 1, Tisch 11, Nummer 8
|
Lange, Milan, = Hof 1, Tisch 11, Nummer 2
|
||||||
Meyer, Anton, = Hof 1, Tisch 17, Nummer 7
|
Meyer, Anton, = Hof 1, Tisch 17, Nummer 6
|
||||||
Meyer, Christian, = Hof 1, Tisch 2, Nummer 4
|
Meyer, Christian, = Hof 1, Tisch 13, Nummer 6
|
||||||
Meyer, Ida, = Hof 1, Tisch 17, Nummer 4
|
Meyer, Ida, = Hof 1, Tisch 17, Nummer 3
|
||||||
Meyer, Marco, = Hof 1, Tisch 12, Nummer 9
|
Meyer, Marco, = Hof 1, Tisch 12, Nummer 9
|
||||||
Meyer, Mila, = Hof 1, Tisch 16, Nummer 10
|
Meyer, Mila, = Hof 1, Tisch 16, Nummer 11
|
||||||
Meyer, Sandra, = Hof 1, Tisch 12, Nummer 6
|
Meyer, Sandra, = Hof 1, Tisch 12, Nummer 3
|
||||||
Meyer, Wolfgang, = Hof 1, Tisch 9, Nummer 4
|
Meyer, Wolfgang, = Hof 1, Tisch 9, Nummer 4
|
||||||
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 2
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 3
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 3
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 5
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 4
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 6
|
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 7
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 7
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 8
|
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 8
|
||||||
Musikverein, Gast, = Hof 1, Tisch 4, Nummer 9
|
|
||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 2
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 2
|
||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 3
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 3
|
||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 4
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 4
|
||||||
@@ -80,41 +79,42 @@ Musikverein, Gast, = Hof 1, Tisch 5, Nummer 5
|
|||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 6
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 6
|
||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 7
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 7
|
||||||
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 8
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 8
|
||||||
Peters, Melanie, = Hof 1, Tisch 8, Nummer 7
|
Musikverein, Gast, = Hof 1, Tisch 5, Nummer 9
|
||||||
Peters, Yusuf, = Hof 1, Tisch 8, Nummer 9
|
Peters, Melanie, = Hof 1, Tisch 1, Nummer 6
|
||||||
Polat, Matthias, = Hof 1, Tisch 12, Nummer 3
|
Peters, Yusuf, = Hof 1, Tisch 1, Nummer 7
|
||||||
Roth, Stefanie, = Hof 1, Tisch 2, Nummer 8
|
Polat, Matthias, = Hof 1, Tisch 12, Nummer 2
|
||||||
Schmidt, Dennis, = Hof 1, Tisch 8, Nummer 3
|
Roth, Stefanie, = Hof 1, Tisch 13, Nummer 9
|
||||||
Schmitt, Markus, = Hof 1, Tisch 11, Nummer 6
|
Schmidt, Dennis, = Hof 1, Tisch 4, Nummer 5
|
||||||
Schwarz, Elias, = Hof 1, Tisch 16, Nummer 12
|
Schmitt, Markus, = Hof 1, Tisch 11, Nummer 9
|
||||||
Schwarz, Guenter, = Hof 1, Tisch 13, Nummer 5
|
Schwarz, Elias, = Hof 1, Tisch 16, Nummer 14
|
||||||
Schwarz, Liam, = Hof 1, Tisch 16, Nummer 6
|
Schwarz, Guenter, = Hof 1, Tisch 14, Nummer 7
|
||||||
Schwarz, Sarah, = Hof 1, Tisch 13, Nummer 9
|
Schwarz, Liam, = Hof 1, Tisch 16, Nummer 7
|
||||||
Schwarz, Yusuf, = Hof 1, Tisch 13, Nummer 8
|
Schwarz, Sarah, = Hof 1, Tisch 2, Nummer 4
|
||||||
Simon, Jennifer, = Hof 1, Tisch 10, Nummer 6
|
Schwarz, Yusuf, = Hof 1, Tisch 2, Nummer 7
|
||||||
|
Simon, Jennifer, = Hof 1, Tisch 10, Nummer 3
|
||||||
Simon, Patrick, = Hof 1, Tisch 8, Nummer 6
|
Simon, Patrick, = Hof 1, Tisch 8, Nummer 6
|
||||||
Simon, Stefanie, = Hof 1, Tisch 10, Nummer 9
|
Simon, Stefanie, = Hof 1, Tisch 10, Nummer 7
|
||||||
Sommer, Daniel, = Hof 1, Tisch 1, Nummer 12
|
Sommer, Daniel, = Hof 1, Tisch 1, Nummer 13
|
||||||
Sommer, Dennis, = Hof 1, Tisch 13, Nummer 3
|
Sommer, Dennis, = Hof 1, Tisch 15, Nummer 5
|
||||||
Sommer, Dennis, = Hof 1, Tisch 3, Nummer 4
|
Sommer, Dennis, = Hof 1, Tisch 15, Nummer 7
|
||||||
Sommer, Dieter, = Hof 1, Tisch 1, Nummer 4
|
Sommer, Dieter, = Hof 1, Tisch 1, Nummer 10
|
||||||
Sommer, Emil, = Hof 1, Tisch 16, Nummer 2
|
Sommer, Emil, = Hof 1, Tisch 16, Nummer 12
|
||||||
Sommer, Ida, = Hof 1, Tisch 16, Nummer 9
|
Sommer, Ida, = Hof 1, Tisch 16, Nummer 6
|
||||||
Sommer, Jennifer, = Hof 1, Tisch 13, Nummer 6
|
Sommer, Jennifer, = Hof 1, Tisch 15, Nummer 2
|
||||||
Sommer, Lina, = Hof 1, Tisch 3, Nummer 2
|
Sommer, Lina, = Hof 1, Tisch 15, Nummer 3
|
||||||
Sommer, Max, = Hof 1, Tisch 16, Nummer 7
|
Sommer, Max, = Hof 1, Tisch 16, Nummer 13
|
||||||
Sommer, Nicole, = Hof 1, Tisch 3, Nummer 3
|
Sommer, Nicole, = Hof 1, Tisch 15, Nummer 6
|
||||||
Sommer, Renate, = Hof 1, Tisch 1, Nummer 3
|
Sommer, Renate, = Hof 1, Tisch 1, Nummer 8
|
||||||
Sommer, Theo, = Hof 1, Tisch 16, Nummer 5
|
Sommer, Theo, = Hof 1, Tisch 16, Nummer 4
|
||||||
Stein, Andreas, = Hof 1, Tisch 10, Nummer 8
|
Stein, Andreas, = Hof 1, Tisch 10, Nummer 6
|
||||||
Stein, Werner, = Hof 1, Tisch 13, Nummer 4
|
Stein, Werner, = Hof 1, Tisch 14, Nummer 6
|
||||||
Tran, Heinz, = Hof 1, Tisch 15, Nummer 7
|
Tran, Heinz, = Hof 1, Tisch 3, Nummer 3
|
||||||
Vogel, Anton, = Hof 1, Tisch 17, Nummer 3
|
Vogel, Anton, = Hof 1, Tisch 17, Nummer 2
|
||||||
Vogel, Max, = Hof 1, Tisch 17, Nummer 2
|
Vogel, Max, = Hof 1, Tisch 17, Nummer 7
|
||||||
Vogel, Sandra, = Hof 1, Tisch 1, Nummer 8
|
Vogel, Sandra, = Hof 1, Tisch 14, Nummer 9
|
||||||
Vogel, Svenja, = Hof 1, Tisch 8, Nummer 5
|
Vogel, Svenja, = Hof 1, Tisch 8, Nummer 2
|
||||||
Vogel, Yusuf, = Hof 1, Tisch 1, Nummer 5
|
Vogel, Yusuf, = Hof 1, Tisch 14, Nummer 8
|
||||||
Wagner, Daniel, = Hof 1, Tisch 10, Nummer 7
|
Wagner, Daniel, = Hof 1, Tisch 10, Nummer 5
|
||||||
Wagner, Timo, = Hof 1, Tisch 12, Nummer 5
|
Wagner, Timo, = Hof 1, Tisch 12, Nummer 5
|
||||||
Winkler, Sarah, = Hof 1, Tisch 1, Nummer 13
|
Winkler, Sarah, = Hof 1, Tisch 1, Nummer 11
|
||||||
Yilmaz, Olga, = Hof 1, Tisch 11, Nummer 2
|
Yilmaz, Olga, = Hof 1, Tisch 11, Nummer 4
|
||||||
|
|||||||
|
@@ -2,146 +2,161 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="995.887" height="667.258" viewBox="0 0 995.887 667.258">
|
<svg xmlns="http://www.w3.org/2000/svg" width="995.887" height="667.258" viewBox="0 0 995.887 667.258">
|
||||||
<rect width="100%" height="100%" fill="white"/>
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
<circle cx="744.415" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="744.415" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="744.415" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 6</text>
|
<circle cx="744.415" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="744.415" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">6</text>
|
||||||
<circle cx="87.1573" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="87.1573" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="87.1573" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 7</text>
|
<circle cx="87.1573" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="87.1573" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">7</text>
|
||||||
<circle cx="251.472" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="251.472" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="251.472" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
|
||||||
<circle cx="251.472" cy="216.979" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="216.979" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="281.344" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="285.965" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="221.6" cy="268.718" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="251.472" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
|
||||||
<circle cx="908.73" cy="415.786" r="48.4" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="908.73" cy="415.786" r="48.4" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="908.73" y="365.386" text-anchor="middle" font-size="10" fill="black">Tisch 17</text>
|
|
||||||
<circle cx="908.73" cy="389.386" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="908.73" cy="389.386" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="931.593" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="931.593" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="931.593" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="931.593" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="908.73" cy="442.186" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="908.73" cy="442.186" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="885.867" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="885.867" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="885.867" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="885.867" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="580.101" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="908.73" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="580.101" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
<text x="908.73" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">17</text>
|
||||||
<circle cx="580.101" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="607.069" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="613.729" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="595.067" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="565.135" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="546.472" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="553.133" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="415.786" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="415.786" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 14</text>
|
|
||||||
<circle cx="415.786" cy="545.608" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="442.754" cy="558.595" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="449.415" cy="587.776" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="430.752" cy="611.178" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="400.82" cy="611.178" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="382.158" cy="587.776" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="388.818" cy="558.595" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="87.1573" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="87.1573" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
|
||||||
<circle cx="87.1573" cy="216.979" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="111.548" cy="227.081" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="121.651" cy="251.472" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="111.548" cy="275.862" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="87.1573" cy="285.965" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="62.7669" cy="275.862" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="52.664" cy="251.472" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="62.7669" cy="227.081" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="415.786" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="415.786" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="415.786" y="192.979" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
<circle cx="415.786" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="415.786" cy="216.979" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="442.754" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="440.177" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="449.415" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="450.28" cy="251.472" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="430.752" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="440.177" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="400.82" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="415.786" cy="285.965" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="382.158" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="391.396" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="388.818" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="381.293" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="415.786" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="391.396" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<text x="415.786" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
|
||||||
|
<circle cx="87.1573" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="87.1573" cy="216.979" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="227.081" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="121.651" cy="251.472" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="111.548" cy="275.862" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="285.965" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="275.862" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="52.664" cy="251.472" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="62.7669" cy="227.081" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="87.1573" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="87.1573" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
|
||||||
|
<circle cx="580.101" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="580.101" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="614.594" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="604.491" cy="275.862" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="285.965" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="545.608" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="555.711" cy="227.081" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="580.101" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">5</text>
|
||||||
<circle cx="251.472" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="251.472" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="251.472" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 8</text>
|
<circle cx="251.472" cy="381.293" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="251.472" cy="381.293" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="275.862" cy="391.396" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="275.862" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="285.965" cy="415.786" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="285.965" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="275.862" cy="440.177" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="275.862" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="450.28" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="251.472" cy="450.28" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="227.081" cy="440.177" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="227.081" cy="440.177" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="216.979" cy="415.786" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="216.979" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="227.081" cy="391.396" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="227.081" cy="391.396" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="251.472" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">8</text>
|
||||||
<circle cx="415.786" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="415.786" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="415.786" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 9</text>
|
<circle cx="415.786" cy="381.293" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="415.786" cy="381.293" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="440.177" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="440.177" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="450.28" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="450.28" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="440.177" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="440.177" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="415.786" cy="450.28" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="415.786" cy="450.28" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="391.396" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="391.396" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="381.293" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="381.293" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="391.396" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="391.396" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="415.786" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="415.786" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">9</text>
|
||||||
<circle cx="580.101" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="580.101" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="580.101" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 10</text>
|
<circle cx="580.101" cy="381.293" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="580.101" cy="381.293" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="604.491" cy="391.396" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="604.491" cy="391.396" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="614.594" cy="415.786" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="614.594" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="604.491" cy="440.177" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="604.491" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="580.101" cy="450.28" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="580.101" cy="450.28" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="555.711" cy="440.177" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="555.711" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="545.608" cy="415.786" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="545.608" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="555.711" cy="391.396" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="555.711" cy="391.396" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="580.101" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="580.101" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">10</text>
|
||||||
<circle cx="744.415" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="744.415" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="744.415" y="357.293" text-anchor="middle" font-size="10" fill="black">Tisch 11</text>
|
<circle cx="744.415" cy="381.293" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="744.415" cy="381.293" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="768.806" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="768.806" cy="391.396" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="778.909" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="778.909" cy="415.786" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="768.806" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="768.806" cy="440.177" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="744.415" cy="450.28" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="744.415" cy="450.28" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="720.025" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="720.025" cy="440.177" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="709.922" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="709.922" cy="415.786" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="720.025" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="720.025" cy="391.396" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="744.415" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="744.415" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">11</text>
|
||||||
<circle cx="87.1573" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="87.1573" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="87.1573" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 12</text>
|
<circle cx="87.1573" cy="545.608" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="87.1573" cy="545.608" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="111.548" cy="555.711" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="111.548" cy="555.711" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="121.651" cy="580.101" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="121.651" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="111.548" cy="604.491" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="111.548" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="87.1573" cy="614.594" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="87.1573" cy="614.594" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="62.7669" cy="604.491" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="62.7669" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="52.664" cy="580.101" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="52.664" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="62.7669" cy="555.711" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="62.7669" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="87.1573" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="87.1573" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">12</text>
|
||||||
<circle cx="251.472" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="251.472" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="251.472" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 13</text>
|
<circle cx="251.472" cy="545.608" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="251.472" cy="545.608" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="275.862" cy="555.711" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="275.862" cy="555.711" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="285.965" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="285.965" cy="580.101" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="275.862" cy="604.491" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="275.862" cy="604.491" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="614.594" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="251.472" cy="614.594" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="227.081" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="227.081" cy="604.491" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="216.979" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="216.979" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="227.081" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="227.081" cy="555.711" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="251.472" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="251.472" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">13</text>
|
||||||
|
<circle cx="415.786" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="415.786" cy="545.608" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="555.711" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="450.28" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="440.177" cy="604.491" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="614.594" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="604.491" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="381.293" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="391.396" cy="555.711" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="415.786" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">14</text>
|
||||||
<circle cx="580.101" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="580.101" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="580.101" y="521.608" text-anchor="middle" font-size="10" fill="black">Tisch 15</text>
|
|
||||||
<circle cx="580.101" cy="545.608" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="580.101" cy="545.608" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="604.491" cy="555.711" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="604.491" cy="555.711" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="614.594" cy="580.101" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="614.594" cy="580.101" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="604.491" cy="604.491" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="604.491" cy="604.491" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="580.101" cy="614.594" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="580.101" cy="614.594" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="555.711" cy="604.491" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="555.711" cy="604.491" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="545.608" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="545.608" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="555.711" cy="555.711" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="555.711" cy="555.711" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.101" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="580.101" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">15</text>
|
||||||
<circle cx="415.786" cy="87.1573" r="73.0009" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="415.786" cy="87.1573" r="73.0009" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="415.786" y="12.1564" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
|
||||||
<circle cx="415.786" cy="36.1564" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="415.786" cy="36.1564" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="441.287" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="441.287" cy="42.9892" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="459.954" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="459.954" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="466.787" cy="87.1573" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="466.787" cy="87.1573" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="459.954" cy="112.658" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="459.954" cy="112.658" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="441.287" cy="131.325" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="441.287" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="415.786" cy="138.158" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="415.786" cy="138.158" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="390.286" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="390.286" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="371.618" cy="112.658" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="371.618" cy="112.658" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="364.785" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="364.785" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="371.618" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="371.618" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="390.286" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="390.286" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="415.786" cy="87.1573" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="415.786" y="87.1573" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
|
||||||
<circle cx="908.73" cy="251.472" r="77.1573" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="908.73" cy="251.472" r="77.1573" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="908.73" y="172.315" text-anchor="middle" font-size="10" fill="black">Tisch 16</text>
|
|
||||||
<circle cx="908.73" cy="196.315" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="908.73" cy="196.315" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="934.363" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="934.363" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="954.124" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="954.124" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
@@ -155,4 +170,6 @@
|
|||||||
<circle cx="853.975" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="853.975" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="863.336" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="863.336" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="883.097" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="883.097" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="908.73" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="908.73" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">16</text>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
@@ -1,41 +1,40 @@
|
|||||||
[1]
|
[1]
|
||||||
Helga Brandt = Hof 1, Tisch 1, Nummer 1
|
Kathrin Brandt = Hof 1, Tisch 1, Nummer 1
|
||||||
Renate Sommer = Hof 1, Tisch 1, Nummer 2
|
Helga Brandt = Hof 1, Tisch 1, Nummer 2
|
||||||
Dieter Sommer = Hof 1, Tisch 1, Nummer 3
|
Daniel Brandt = Hof 1, Tisch 1, Nummer 3
|
||||||
Yusuf Vogel = Hof 1, Tisch 1, Nummer 4
|
Tobias Frank = Hof 1, Tisch 1, Nummer 4
|
||||||
Werner Brandt = Hof 1, Tisch 1, Nummer 5
|
Melanie Peters = Hof 1, Tisch 1, Nummer 5
|
||||||
Timo Kuhn = Hof 1, Tisch 1, Nummer 6
|
Yusuf Peters = Hof 1, Tisch 1, Nummer 6
|
||||||
Sandra Vogel = Hof 1, Tisch 1, Nummer 7
|
Renate Sommer = Hof 1, Tisch 1, Nummer 7
|
||||||
Julia Brandt = Hof 1, Tisch 1, Nummer 8
|
Julia Brandt = Hof 1, Tisch 1, Nummer 8
|
||||||
Sarah Kuhn = Hof 1, Tisch 1, Nummer 9
|
Dieter Sommer = Hof 1, Tisch 1, Nummer 9
|
||||||
Tobias Frank = Hof 1, Tisch 1, Nummer 10
|
Sarah Winkler = Hof 1, Tisch 1, Nummer 10
|
||||||
Daniel Sommer = Hof 1, Tisch 1, Nummer 11
|
Werner Brandt = Hof 1, Tisch 1, Nummer 11
|
||||||
Sarah Winkler = Hof 1, Tisch 1, Nummer 12
|
Daniel Sommer = Hof 1, Tisch 1, Nummer 12
|
||||||
|
|
||||||
[2]
|
[2]
|
||||||
Svenja Horn = Hof 1, Tisch 2, Nummer 1
|
Andreas Brandt = Hof 1, Tisch 2, Nummer 1
|
||||||
Stefanie Busch = Hof 1, Tisch 2, Nummer 2
|
Ursula Aydin = Hof 1, Tisch 2, Nummer 2
|
||||||
Christian Meyer = Hof 1, Tisch 2, Nummer 3
|
Sarah Schwarz = Hof 1, Tisch 2, Nummer 3
|
||||||
Sergej Berger = Hof 1, Tisch 2, Nummer 4
|
Theo Brandt = Hof 1, Tisch 2, Nummer 4
|
||||||
Jennifer Dietrich = Hof 1, Tisch 2, Nummer 5
|
Lena Brandt = Hof 1, Tisch 2, Nummer 5
|
||||||
Andreas Koch = Hof 1, Tisch 2, Nummer 6
|
Yusuf Schwarz = Hof 1, Tisch 2, Nummer 6
|
||||||
Stefanie Roth = Hof 1, Tisch 2, Nummer 7
|
Horst Aydin = Hof 1, Tisch 2, Nummer 7
|
||||||
Stefan Kuhn = Hof 1, Tisch 2, Nummer 8
|
|
||||||
|
|
||||||
[3]
|
[3]
|
||||||
Lina Sommer = Hof 1, Tisch 3, Nummer 1
|
Heinz Fischer = Hof 1, Tisch 3, Nummer 1
|
||||||
Nicole Sommer = Hof 1, Tisch 3, Nummer 2
|
Heinz Tran = Hof 1, Tisch 3, Nummer 2
|
||||||
Dennis Sommer = Hof 1, Tisch 3, Nummer 3
|
Erika Erdem = Hof 1, Tisch 3, Nummer 3
|
||||||
|
Helga Fischer = Hof 1, Tisch 3, Nummer 4
|
||||||
|
|
||||||
[4]
|
[4]
|
||||||
Melanie Kraus = Hof 1, Tisch 4, Nummer 1
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 1
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 2
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 2
|
||||||
Dennis Kraus = Hof 1, Tisch 4, Nummer 3
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 3
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 4
|
Dennis Schmidt = Hof 1, Tisch 4, Nummer 4
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 5
|
Giovanna Koch = Hof 1, Tisch 4, Nummer 5
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 6
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 6
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 7
|
Gast Musikverein = Hof 1, Tisch 4, Nummer 7
|
||||||
Gast Musikverein = Hof 1, Tisch 4, Nummer 8
|
|
||||||
|
|
||||||
[5]
|
[5]
|
||||||
Gast Musikverein = Hof 1, Tisch 5, Nummer 1
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 1
|
||||||
@@ -45,110 +44,111 @@
|
|||||||
Gast Musikverein = Hof 1, Tisch 5, Nummer 5
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 5
|
||||||
Gast Musikverein = Hof 1, Tisch 5, Nummer 6
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 6
|
||||||
Gast Musikverein = Hof 1, Tisch 5, Nummer 7
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 7
|
||||||
|
Gast Musikverein = Hof 1, Tisch 5, Nummer 8
|
||||||
|
|
||||||
[6]
|
[6]
|
||||||
|
|
||||||
[7]
|
[7]
|
||||||
|
|
||||||
[8]
|
[8]
|
||||||
Giovanna Koch = Hof 1, Tisch 8, Nummer 1
|
Svenja Vogel = Hof 1, Tisch 8, Nummer 1
|
||||||
Dennis Schmidt = Hof 1, Tisch 8, Nummer 2
|
Sven Fischer = Hof 1, Tisch 8, Nummer 2
|
||||||
Julia Esposito = Hof 1, Tisch 8, Nummer 3
|
Giovanna Kovac = Hof 1, Tisch 8, Nummer 3
|
||||||
Svenja Vogel = Hof 1, Tisch 8, Nummer 4
|
Sergej Berger = Hof 1, Tisch 8, Nummer 4
|
||||||
Patrick Simon = Hof 1, Tisch 8, Nummer 5
|
Patrick Simon = Hof 1, Tisch 8, Nummer 5
|
||||||
Melanie Peters = Hof 1, Tisch 8, Nummer 6
|
Andreas Koch = Hof 1, Tisch 8, Nummer 6
|
||||||
Giovanna Kovac = Hof 1, Tisch 8, Nummer 7
|
Stefanie Busch = Hof 1, Tisch 8, Nummer 7
|
||||||
Yusuf Peters = Hof 1, Tisch 8, Nummer 8
|
Julia Esposito = Hof 1, Tisch 8, Nummer 8
|
||||||
|
|
||||||
[9]
|
[9]
|
||||||
Gerhard Erdem = Hof 1, Tisch 9, Nummer 1
|
Gisela Esposito = Hof 1, Tisch 9, Nummer 1
|
||||||
Rainer Erdem = Hof 1, Tisch 9, Nummer 2
|
Erika Frank = Hof 1, Tisch 9, Nummer 2
|
||||||
Wolfgang Meyer = Hof 1, Tisch 9, Nummer 3
|
Wolfgang Meyer = Hof 1, Tisch 9, Nummer 3
|
||||||
Wolfgang Hansen = Hof 1, Tisch 9, Nummer 4
|
Wolfgang Hansen = Hof 1, Tisch 9, Nummer 4
|
||||||
Gisela Esposito = Hof 1, Tisch 9, Nummer 5
|
Gerhard Erdem = Hof 1, Tisch 9, Nummer 5
|
||||||
Hannelore Barth = Hof 1, Tisch 9, Nummer 6
|
Rainer Erdem = Hof 1, Tisch 9, Nummer 6
|
||||||
Erika Frank = Hof 1, Tisch 9, Nummer 7
|
Hannelore Barth = Hof 1, Tisch 9, Nummer 7
|
||||||
Brigitte Franke = Hof 1, Tisch 9, Nummer 8
|
Brigitte Franke = Hof 1, Tisch 9, Nummer 8
|
||||||
|
|
||||||
[10]
|
[10]
|
||||||
Elif Demir = Hof 1, Tisch 10, Nummer 1
|
Stefan Klein = Hof 1, Tisch 10, Nummer 1
|
||||||
Sven Fischer = Hof 1, Tisch 10, Nummer 2
|
Jennifer Simon = Hof 1, Tisch 10, Nummer 2
|
||||||
Timo Frank = Hof 1, Tisch 10, Nummer 3
|
Timo Frank = Hof 1, Tisch 10, Nummer 3
|
||||||
Stefan Klein = Hof 1, Tisch 10, Nummer 4
|
Daniel Wagner = Hof 1, Tisch 10, Nummer 4
|
||||||
Jennifer Simon = Hof 1, Tisch 10, Nummer 5
|
Andreas Stein = Hof 1, Tisch 10, Nummer 5
|
||||||
Daniel Wagner = Hof 1, Tisch 10, Nummer 6
|
Stefanie Simon = Hof 1, Tisch 10, Nummer 6
|
||||||
Andreas Stein = Hof 1, Tisch 10, Nummer 7
|
Elif Demir = Hof 1, Tisch 10, Nummer 7
|
||||||
Stefanie Simon = Hof 1, Tisch 10, Nummer 8
|
|
||||||
|
|
||||||
[11]
|
[11]
|
||||||
Olga Yilmaz = Hof 1, Tisch 11, Nummer 1
|
Milan Lange = Hof 1, Tisch 11, Nummer 1
|
||||||
Daniel Horn = Hof 1, Tisch 11, Nummer 2
|
Olga Hansen = Hof 1, Tisch 11, Nummer 2
|
||||||
Kathrin Brandt = Hof 1, Tisch 11, Nummer 3
|
Olga Yilmaz = Hof 1, Tisch 11, Nummer 3
|
||||||
Olga Hansen = Hof 1, Tisch 11, Nummer 4
|
Daniel Horn = Hof 1, Tisch 11, Nummer 4
|
||||||
Markus Schmitt = Hof 1, Tisch 11, Nummer 5
|
Dennis Kraus = Hof 1, Tisch 11, Nummer 5
|
||||||
Daniel Brandt = Hof 1, Tisch 11, Nummer 6
|
Nadine Frank = Hof 1, Tisch 11, Nummer 6
|
||||||
Milan Lange = Hof 1, Tisch 11, Nummer 7
|
Melanie Kraus = Hof 1, Tisch 11, Nummer 7
|
||||||
Nadine Frank = Hof 1, Tisch 11, Nummer 8
|
Markus Schmitt = Hof 1, Tisch 11, Nummer 8
|
||||||
|
|
||||||
[12]
|
[12]
|
||||||
Nicole Dietrich = Hof 1, Tisch 12, Nummer 1
|
Matthias Polat = Hof 1, Tisch 12, Nummer 1
|
||||||
Matthias Polat = Hof 1, Tisch 12, Nummer 2
|
Sandra Meyer = Hof 1, Tisch 12, Nummer 2
|
||||||
Nicole Fischer = Hof 1, Tisch 12, Nummer 3
|
Lena Hoffmann = Hof 1, Tisch 12, Nummer 3
|
||||||
Timo Wagner = Hof 1, Tisch 12, Nummer 4
|
Timo Wagner = Hof 1, Tisch 12, Nummer 4
|
||||||
Sandra Meyer = Hof 1, Tisch 12, Nummer 5
|
Nicole Dietrich = Hof 1, Tisch 12, Nummer 5
|
||||||
Lena Hoffmann = Hof 1, Tisch 12, Nummer 6
|
Christian Esposito = Hof 1, Tisch 12, Nummer 6
|
||||||
Christian Esposito = Hof 1, Tisch 12, Nummer 7
|
Nicole Fischer = Hof 1, Tisch 12, Nummer 7
|
||||||
Marco Meyer = Hof 1, Tisch 12, Nummer 8
|
Marco Meyer = Hof 1, Tisch 12, Nummer 8
|
||||||
|
|
||||||
[13]
|
[13]
|
||||||
Renate Aksoy = Hof 1, Tisch 13, Nummer 1
|
Ingrid Demir = Hof 1, Tisch 13, Nummer 1
|
||||||
Dennis Sommer = Hof 1, Tisch 13, Nummer 2
|
Monika Demir = Hof 1, Tisch 13, Nummer 2
|
||||||
Werner Stein = Hof 1, Tisch 13, Nummer 3
|
Svenja Horn = Hof 1, Tisch 13, Nummer 3
|
||||||
Guenter Schwarz = Hof 1, Tisch 13, Nummer 4
|
Hannelore Demir = Hof 1, Tisch 13, Nummer 4
|
||||||
Jennifer Sommer = Hof 1, Tisch 13, Nummer 5
|
Christian Meyer = Hof 1, Tisch 13, Nummer 5
|
||||||
Rainer Aksoy = Hof 1, Tisch 13, Nummer 6
|
Jennifer Dietrich = Hof 1, Tisch 13, Nummer 6
|
||||||
Yusuf Schwarz = Hof 1, Tisch 13, Nummer 7
|
Stefan Kuhn = Hof 1, Tisch 13, Nummer 7
|
||||||
Sarah Schwarz = Hof 1, Tisch 13, Nummer 8
|
Stefanie Roth = Hof 1, Tisch 13, Nummer 8
|
||||||
|
|
||||||
[14]
|
[14]
|
||||||
Ingrid Demir = Hof 1, Tisch 14, Nummer 1
|
Renate Aksoy = Hof 1, Tisch 14, Nummer 1
|
||||||
Monika Demir = Hof 1, Tisch 14, Nummer 2
|
Sarah Kuhn = Hof 1, Tisch 14, Nummer 2
|
||||||
Heinz Fischer = Hof 1, Tisch 14, Nummer 3
|
Rainer Aksoy = Hof 1, Tisch 14, Nummer 3
|
||||||
Hannelore Demir = Hof 1, Tisch 14, Nummer 4
|
Timo Kuhn = Hof 1, Tisch 14, Nummer 4
|
||||||
Horst Aydin = Hof 1, Tisch 14, Nummer 5
|
Werner Stein = Hof 1, Tisch 14, Nummer 5
|
||||||
Helga Fischer = Hof 1, Tisch 14, Nummer 6
|
Guenter Schwarz = Hof 1, Tisch 14, Nummer 6
|
||||||
Ursula Aydin = Hof 1, Tisch 14, Nummer 7
|
Yusuf Vogel = Hof 1, Tisch 14, Nummer 7
|
||||||
|
Sandra Vogel = Hof 1, Tisch 14, Nummer 8
|
||||||
|
|
||||||
[15]
|
[15]
|
||||||
Andreas Brandt = Hof 1, Tisch 15, Nummer 1
|
Jennifer Sommer = Hof 1, Tisch 15, Nummer 1
|
||||||
Anja Brandt = Hof 1, Tisch 15, Nummer 2
|
Lina Sommer = Hof 1, Tisch 15, Nummer 2
|
||||||
Theo Brandt = Hof 1, Tisch 15, Nummer 3
|
Milan Brandt = Hof 1, Tisch 15, Nummer 3
|
||||||
Milan Brandt = Hof 1, Tisch 15, Nummer 4
|
Dennis Sommer = Hof 1, Tisch 15, Nummer 4
|
||||||
Lena Brandt = Hof 1, Tisch 15, Nummer 5
|
Nicole Sommer = Hof 1, Tisch 15, Nummer 5
|
||||||
Heinz Tran = Hof 1, Tisch 15, Nummer 6
|
Dennis Sommer = Hof 1, Tisch 15, Nummer 6
|
||||||
Sofia Brandt = Hof 1, Tisch 15, Nummer 7
|
Anja Brandt = Hof 1, Tisch 15, Nummer 7
|
||||||
Erika Erdem = Hof 1, Tisch 15, Nummer 8
|
Sofia Brandt = Hof 1, Tisch 15, Nummer 8
|
||||||
|
|
||||||
[16]
|
[16]
|
||||||
Emil Sommer = Hof 1, Tisch 16, Nummer 1
|
Anton Brandt = Hof 1, Tisch 16, Nummer 1
|
||||||
Greta Brandt = Hof 1, Tisch 16, Nummer 2
|
Frieda Brandt = Hof 1, Tisch 16, Nummer 2
|
||||||
Matteo Kraus = Hof 1, Tisch 16, Nummer 3
|
Theo Sommer = Hof 1, Tisch 16, Nummer 3
|
||||||
Theo Sommer = Hof 1, Tisch 16, Nummer 4
|
Felix Brandt = Hof 1, Tisch 16, Nummer 4
|
||||||
Liam Schwarz = Hof 1, Tisch 16, Nummer 5
|
Ida Sommer = Hof 1, Tisch 16, Nummer 5
|
||||||
Max Sommer = Hof 1, Tisch 16, Nummer 6
|
Liam Schwarz = Hof 1, Tisch 16, Nummer 6
|
||||||
Frieda Brandt = Hof 1, Tisch 16, Nummer 7
|
Matteo Kraus = Hof 1, Tisch 16, Nummer 7
|
||||||
Ida Sommer = Hof 1, Tisch 16, Nummer 8
|
Greta Brandt = Hof 1, Tisch 16, Nummer 8
|
||||||
Mila Meyer = Hof 1, Tisch 16, Nummer 9
|
Leni Kuhn = Hof 1, Tisch 16, Nummer 9
|
||||||
Leni Kuhn = Hof 1, Tisch 16, Nummer 10
|
Mila Meyer = Hof 1, Tisch 16, Nummer 10
|
||||||
Elias Schwarz = Hof 1, Tisch 16, Nummer 11
|
Emil Sommer = Hof 1, Tisch 16, Nummer 11
|
||||||
Felix Brandt = Hof 1, Tisch 16, Nummer 12
|
Max Sommer = Hof 1, Tisch 16, Nummer 12
|
||||||
Anton Brandt = Hof 1, Tisch 16, Nummer 13
|
Elias Schwarz = Hof 1, Tisch 16, Nummer 13
|
||||||
|
|
||||||
[17]
|
[17]
|
||||||
Max Vogel = Hof 1, Tisch 17, Nummer 1
|
Anton Vogel = Hof 1, Tisch 17, Nummer 1
|
||||||
Anton Vogel = Hof 1, Tisch 17, Nummer 2
|
Ida Meyer = Hof 1, Tisch 17, Nummer 2
|
||||||
Ida Meyer = Hof 1, Tisch 17, Nummer 3
|
Paul Brandt = Hof 1, Tisch 17, Nummer 3
|
||||||
Ben Brandt = Hof 1, Tisch 17, Nummer 4
|
Ben Brandt = Hof 1, Tisch 17, Nummer 4
|
||||||
Paul Brandt = Hof 1, Tisch 17, Nummer 5
|
Anton Meyer = Hof 1, Tisch 17, Nummer 5
|
||||||
Anton Meyer = Hof 1, Tisch 17, Nummer 6
|
Max Vogel = Hof 1, Tisch 17, Nummer 6
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,575 @@
|
|||||||
|
{
|
||||||
|
"gruppen": [
|
||||||
|
{
|
||||||
|
"name": "Ehrentafel: Brautpaar, Brauteltern, Braeutigameltern, Trauzeugen (fest an Tisch 1)",
|
||||||
|
"tisch": 1,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Julia",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Daniel",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Werner",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Helga",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Dieter",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Renate",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sarah",
|
||||||
|
"nachname": "Winkler"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Tobias",
|
||||||
|
"nachname": "Frank"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Peters (Braut-Seite, Geschwister Melanie)",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Yusuf",
|
||||||
|
"nachname": "Peters"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Melanie",
|
||||||
|
"nachname": "Peters"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Brandt (Braut-Seite, Geschwister Daniel): Felix (12 J.) am Kindertisch; Ben (13 J.) am Teenager-Tisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Daniel",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Kathrin",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Kraus (Braut-Seite, Geschwister Melanie): Matteo (9 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Dennis",
|
||||||
|
"nachname": "Kraus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Melanie",
|
||||||
|
"nachname": "Kraus"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Brandt (Braut-Seite, Geschwister Andreas): Theo (3 J.) sitzt bei den Eltern; Anton (10 J.) am Kindertisch; Frieda (12 J.) am Kindertisch; Paul (19 J.) am Teenager-Tisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Andreas",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Lena",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Theo",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Meyer (Braut-Seite, Geschwister Sandra): Mila (10 J.) am Kindertisch; Anton (16 J.) am Teenager-Tisch; Ida (16 J.) am Teenager-Tisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Marco",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sandra",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Brandt (Braut-Seite, Geschwister Milan): Sofia (2 J.) sitzt bei den Eltern; Greta (7 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Milan",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Anja",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sofia",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Vogel (Braut-Seite, Geschwister Sandra): Anton (14 J.) am Teenager-Tisch; Max (15 J.) am Teenager-Tisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Yusuf",
|
||||||
|
"nachname": "Vogel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sandra",
|
||||||
|
"nachname": "Vogel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Lina (3 J.) sitzt bei den Eltern; Theo (8 J.) am Kindertisch; Max (12 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Dennis",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Nicole",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Lina",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Kuhn (Braeutigam-Seite, Geschwister Sarah): Leni (10 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Timo",
|
||||||
|
"nachname": "Kuhn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sarah",
|
||||||
|
"nachname": "Kuhn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Emil (8 J.) am Kindertisch; Ida (8 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Dennis",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Jennifer",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Familie Schwarz (Braeutigam-Seite, Geschwister Sarah): Liam (8 J.) am Kindertisch; Elias (8 J.) am Kindertisch",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Yusuf",
|
||||||
|
"nachname": "Schwarz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Sarah",
|
||||||
|
"nachname": "Schwarz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Onkel und Tante (Braut-Seite)",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Horst",
|
||||||
|
"nachname": "Aydin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Ursula",
|
||||||
|
"nachname": "Aydin"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Onkel und Tante mit Cousine (Braut-Seite)",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Ingrid",
|
||||||
|
"nachname": "Demir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Monika",
|
||||||
|
"nachname": "Demir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Hannelore",
|
||||||
|
"nachname": "Demir"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Onkel und Tante (Braeutigam-Seite)",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Heinz",
|
||||||
|
"nachname": "Fischer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Helga",
|
||||||
|
"nachname": "Fischer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Grosstante mit Begleitung",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Heinz",
|
||||||
|
"nachname": "Tran"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Erika",
|
||||||
|
"nachname": "Erdem"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Studienfreunde der Braut",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Nicole",
|
||||||
|
"nachname": "Fischer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Matthias",
|
||||||
|
"nachname": "Polat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Christian",
|
||||||
|
"nachname": "Esposito"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Lena",
|
||||||
|
"nachname": "Hoffmann"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Timo",
|
||||||
|
"nachname": "Wagner"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Nicole",
|
||||||
|
"nachname": "Dietrich"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kegelclub des Brautvaters",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Wolfgang",
|
||||||
|
"nachname": "Hansen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Hannelore",
|
||||||
|
"nachname": "Barth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Erika",
|
||||||
|
"nachname": "Frank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Gerhard",
|
||||||
|
"nachname": "Erdem"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Rainer",
|
||||||
|
"nachname": "Erdem"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Gisela",
|
||||||
|
"nachname": "Esposito"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Brigitte",
|
||||||
|
"nachname": "Franke"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Wolfgang",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Arbeitskolleginnen der Braut",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Elif",
|
||||||
|
"nachname": "Demir"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Jennifer",
|
||||||
|
"nachname": "Simon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Andreas",
|
||||||
|
"nachname": "Stein"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Stefan",
|
||||||
|
"nachname": "Klein"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Timo",
|
||||||
|
"nachname": "Frank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Daniel",
|
||||||
|
"nachname": "Wagner"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Stefanie",
|
||||||
|
"nachname": "Simon"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Arbeitskollegen des Braeutigams",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Nadine",
|
||||||
|
"nachname": "Frank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Markus",
|
||||||
|
"nachname": "Schmitt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Olga",
|
||||||
|
"nachname": "Yilmaz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Olga",
|
||||||
|
"nachname": "Hansen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Daniel",
|
||||||
|
"nachname": "Horn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Milan",
|
||||||
|
"nachname": "Lange"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nachbarn der Brauteltern",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Guenter",
|
||||||
|
"nachname": "Schwarz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Rainer",
|
||||||
|
"nachname": "Aksoy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Renate",
|
||||||
|
"nachname": "Aksoy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Werner",
|
||||||
|
"nachname": "Stein"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fussballverein des Braeutigams",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Sergej",
|
||||||
|
"nachname": "Berger"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Giovanna",
|
||||||
|
"nachname": "Kovac"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Dennis",
|
||||||
|
"nachname": "Schmidt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Patrick",
|
||||||
|
"nachname": "Simon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Stefanie",
|
||||||
|
"nachname": "Busch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Andreas",
|
||||||
|
"nachname": "Koch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Svenja",
|
||||||
|
"nachname": "Vogel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Giovanna",
|
||||||
|
"nachname": "Koch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Julia",
|
||||||
|
"nachname": "Esposito"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Freundinnen aus der Schulzeit",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Jennifer",
|
||||||
|
"nachname": "Dietrich"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Christian",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Svenja",
|
||||||
|
"nachname": "Horn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Stefanie",
|
||||||
|
"nachname": "Roth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Stefan",
|
||||||
|
"nachname": "Kuhn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kindertisch (5-12 Jahre, fest an Tisch 16)",
|
||||||
|
"tisch": 16,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Felix",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Matteo",
|
||||||
|
"nachname": "Kraus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Anton",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Frieda",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Mila",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Greta",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Theo",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Max",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Leni",
|
||||||
|
"nachname": "Kuhn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Emil",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Ida",
|
||||||
|
"nachname": "Sommer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Liam",
|
||||||
|
"nachname": "Schwarz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Elias",
|
||||||
|
"nachname": "Schwarz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Teenager-Tisch (13-19 Jahre, fest an Tisch 17)",
|
||||||
|
"tisch": 17,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Ben",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Paul",
|
||||||
|
"nachname": "Brandt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Anton",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Ida",
|
||||||
|
"nachname": "Meyer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Anton",
|
||||||
|
"nachname": "Vogel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Max",
|
||||||
|
"nachname": "Vogel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Musikverein (anonyme Sammelbuchung, 13 Karten)",
|
||||||
|
"anzahl": 13,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Gast",
|
||||||
|
"nachname": "Musikverein"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "alleinreisender Gast",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Sven",
|
||||||
|
"nachname": "Fischer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,549 +0,0 @@
|
|||||||
<Bestellung>
|
|
||||||
|
|
||||||
<!-- Hochzeit in der Gaststaette "Zum Goldenen Hirschen": 120 Gaeste, 143 Plaetze (84%% Auslastung). Ehrentafel = Tisch 1, Kindertisch = Tisch 16, Teenager-Tisch = Tisch 17. -->
|
|
||||||
|
|
||||||
<!-- Ehrentafel: Brautpaar, Brauteltern, Braeutigameltern, Trauzeugen (fest an Tisch 1) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Julia</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Daniel</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Werner</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Helga</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Dieter</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Renate</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sarah</Vorname>
|
|
||||||
<Nachname>Winkler</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Tobias</Vorname>
|
|
||||||
<Nachname>Frank</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Tisch>1</Tisch>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Peters (Braut-Seite, Geschwister Melanie) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Yusuf</Vorname>
|
|
||||||
<Nachname>Peters</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Melanie</Vorname>
|
|
||||||
<Nachname>Peters</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Brandt (Braut-Seite, Geschwister Daniel): Felix (12 J.) am Kindertisch; Ben (13 J.) am Teenager-Tisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Daniel</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Kathrin</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Kraus (Braut-Seite, Geschwister Melanie): Matteo (9 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Dennis</Vorname>
|
|
||||||
<Nachname>Kraus</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Melanie</Vorname>
|
|
||||||
<Nachname>Kraus</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Brandt (Braut-Seite, Geschwister Andreas): Theo (3 J.) sitzt bei den Eltern; Anton (10 J.) am Kindertisch; Frieda (12 J.) am Kindertisch; Paul (19 J.) am Teenager-Tisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Andreas</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Lena</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Theo</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Meyer (Braut-Seite, Geschwister Sandra): Mila (10 J.) am Kindertisch; Anton (16 J.) am Teenager-Tisch; Ida (16 J.) am Teenager-Tisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Marco</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sandra</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Brandt (Braut-Seite, Geschwister Milan): Sofia (2 J.) sitzt bei den Eltern; Greta (7 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Milan</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Anja</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sofia</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Vogel (Braut-Seite, Geschwister Sandra): Anton (14 J.) am Teenager-Tisch; Max (15 J.) am Teenager-Tisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Yusuf</Vorname>
|
|
||||||
<Nachname>Vogel</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sandra</Vorname>
|
|
||||||
<Nachname>Vogel</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Lina (3 J.) sitzt bei den Eltern; Theo (8 J.) am Kindertisch; Max (12 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Dennis</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Nicole</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Lina</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Kuhn (Braeutigam-Seite, Geschwister Sarah): Leni (10 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Timo</Vorname>
|
|
||||||
<Nachname>Kuhn</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sarah</Vorname>
|
|
||||||
<Nachname>Kuhn</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Sommer (Braeutigam-Seite, Geschwister Dennis): Emil (8 J.) am Kindertisch; Ida (8 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Dennis</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Jennifer</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Familie Schwarz (Braeutigam-Seite, Geschwister Sarah): Liam (8 J.) am Kindertisch; Elias (8 J.) am Kindertisch -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Yusuf</Vorname>
|
|
||||||
<Nachname>Schwarz</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sarah</Vorname>
|
|
||||||
<Nachname>Schwarz</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Onkel und Tante (Braut-Seite) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Horst</Vorname>
|
|
||||||
<Nachname>Aydin</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ursula</Vorname>
|
|
||||||
<Nachname>Aydin</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Onkel und Tante mit Cousine (Braut-Seite) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ingrid</Vorname>
|
|
||||||
<Nachname>Demir</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Monika</Vorname>
|
|
||||||
<Nachname>Demir</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Hannelore</Vorname>
|
|
||||||
<Nachname>Demir</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Onkel und Tante (Braeutigam-Seite) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Heinz</Vorname>
|
|
||||||
<Nachname>Fischer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Helga</Vorname>
|
|
||||||
<Nachname>Fischer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Grosstante mit Begleitung -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Heinz</Vorname>
|
|
||||||
<Nachname>Tran</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Erika</Vorname>
|
|
||||||
<Nachname>Erdem</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Studienfreunde der Braut -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Nicole</Vorname>
|
|
||||||
<Nachname>Fischer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Matthias</Vorname>
|
|
||||||
<Nachname>Polat</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Christian</Vorname>
|
|
||||||
<Nachname>Esposito</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Lena</Vorname>
|
|
||||||
<Nachname>Hoffmann</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Timo</Vorname>
|
|
||||||
<Nachname>Wagner</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Nicole</Vorname>
|
|
||||||
<Nachname>Dietrich</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Kegelclub des Brautvaters -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Wolfgang</Vorname>
|
|
||||||
<Nachname>Hansen</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Hannelore</Vorname>
|
|
||||||
<Nachname>Barth</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Erika</Vorname>
|
|
||||||
<Nachname>Frank</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Gerhard</Vorname>
|
|
||||||
<Nachname>Erdem</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Rainer</Vorname>
|
|
||||||
<Nachname>Erdem</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Gisela</Vorname>
|
|
||||||
<Nachname>Esposito</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Brigitte</Vorname>
|
|
||||||
<Nachname>Franke</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Wolfgang</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Arbeitskolleginnen der Braut -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Elif</Vorname>
|
|
||||||
<Nachname>Demir</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Jennifer</Vorname>
|
|
||||||
<Nachname>Simon</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Andreas</Vorname>
|
|
||||||
<Nachname>Stein</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Stefan</Vorname>
|
|
||||||
<Nachname>Klein</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Timo</Vorname>
|
|
||||||
<Nachname>Frank</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Daniel</Vorname>
|
|
||||||
<Nachname>Wagner</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Stefanie</Vorname>
|
|
||||||
<Nachname>Simon</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Arbeitskollegen des Braeutigams -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Nadine</Vorname>
|
|
||||||
<Nachname>Frank</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Markus</Vorname>
|
|
||||||
<Nachname>Schmitt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Olga</Vorname>
|
|
||||||
<Nachname>Yilmaz</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Olga</Vorname>
|
|
||||||
<Nachname>Hansen</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Daniel</Vorname>
|
|
||||||
<Nachname>Horn</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Milan</Vorname>
|
|
||||||
<Nachname>Lange</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Nachbarn der Brauteltern -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Guenter</Vorname>
|
|
||||||
<Nachname>Schwarz</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Rainer</Vorname>
|
|
||||||
<Nachname>Aksoy</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Renate</Vorname>
|
|
||||||
<Nachname>Aksoy</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Werner</Vorname>
|
|
||||||
<Nachname>Stein</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Fussballverein des Braeutigams -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sergej</Vorname>
|
|
||||||
<Nachname>Berger</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Giovanna</Vorname>
|
|
||||||
<Nachname>Kovac</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Dennis</Vorname>
|
|
||||||
<Nachname>Schmidt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Patrick</Vorname>
|
|
||||||
<Nachname>Simon</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Stefanie</Vorname>
|
|
||||||
<Nachname>Busch</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Andreas</Vorname>
|
|
||||||
<Nachname>Koch</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Svenja</Vorname>
|
|
||||||
<Nachname>Vogel</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Giovanna</Vorname>
|
|
||||||
<Nachname>Koch</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Julia</Vorname>
|
|
||||||
<Nachname>Esposito</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Freundinnen aus der Schulzeit -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Jennifer</Vorname>
|
|
||||||
<Nachname>Dietrich</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Christian</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Svenja</Vorname>
|
|
||||||
<Nachname>Horn</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Stefanie</Vorname>
|
|
||||||
<Nachname>Roth</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Stefan</Vorname>
|
|
||||||
<Nachname>Kuhn</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Kindertisch (5-12 Jahre, fest an Tisch 16) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Felix</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Matteo</Vorname>
|
|
||||||
<Nachname>Kraus</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Anton</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Frieda</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Mila</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Greta</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Theo</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Max</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Leni</Vorname>
|
|
||||||
<Nachname>Kuhn</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Emil</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ida</Vorname>
|
|
||||||
<Nachname>Sommer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Liam</Vorname>
|
|
||||||
<Nachname>Schwarz</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Elias</Vorname>
|
|
||||||
<Nachname>Schwarz</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Tisch>16</Tisch>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Teenager-Tisch (13-19 Jahre, fest an Tisch 17) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ben</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Paul</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Anton</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ida</Vorname>
|
|
||||||
<Nachname>Meyer</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Anton</Vorname>
|
|
||||||
<Nachname>Vogel</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Max</Vorname>
|
|
||||||
<Nachname>Vogel</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Tisch>17</Tisch>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- Musikverein (anonyme Sammelbuchung, 13 Karten) -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Gast</Vorname>
|
|
||||||
<Nachname>Musikverein</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>13</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- alleinreisender Gast -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sven</Vorname>
|
|
||||||
<Nachname>Fischer</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
</Bestellung>
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500" font-family="sans-serif">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<text x="450" y="30" text-anchor="middle" font-size="16" fill="#333">Entwicklung der Loesungsfindung</text>
|
||||||
|
<line x1="60" y1="60" x2="60" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440" x2="840" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440.0" x2="840" y2="440.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="444.0" text-anchor="end" font-size="11" fill="#666">-620</text>
|
||||||
|
<line x1="60" y1="364.0" x2="840" y2="364.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="368.0" text-anchor="end" font-size="11" fill="#666">-559</text>
|
||||||
|
<line x1="60" y1="288.0" x2="840" y2="288.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="292.0" text-anchor="end" font-size="11" fill="#666">-498</text>
|
||||||
|
<line x1="60" y1="212.0" x2="840" y2="212.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="216.0" text-anchor="end" font-size="11" fill="#666">-436</text>
|
||||||
|
<line x1="60" y1="136.0" x2="840" y2="136.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="140.0" text-anchor="end" font-size="11" fill="#666">-375</text>
|
||||||
|
<line x1="60" y1="60.0" x2="840" y2="60.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="64.0" text-anchor="end" font-size="11" fill="#666">-314</text>
|
||||||
|
<text x="18" y="250" text-anchor="middle" font-size="12" fill="#333" transform="rotate(-90 18 250)">Wertigkeit (hoeher = besser)</text>
|
||||||
|
<text x="450" y="482" text-anchor="middle" font-size="12" fill="#333">Zyklus-Aktion (Zeit)</text>
|
||||||
|
<text x="60.0" y="456" text-anchor="middle" font-size="10" fill="#999">e</text>
|
||||||
|
<text x="108.8" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="157.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="206.2" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="255.0" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="303.8" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="352.5" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="401.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="450.0" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="498.8" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="547.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="596.2" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="645.0" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="693.8" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="742.5" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="791.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="840.0" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<polyline points="60.0,288.5 108.8,288.5 157.5,288.5 206.2,199.1 255.0,199.1 303.8,199.1 352.5,199.1 401.2,199.1 450.0,127.1 498.8,127.1 547.5,127.1 596.2,127.1 645.0,127.1 693.8,60.0 742.5,60.0 791.2,60.0 840.0,60.0" fill="none" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,359.5 108.8,318.8 157.5,318.8 206.2,245.3 255.0,269.8 303.8,269.8 352.5,225.4 401.2,225.4 450.0,175.5 498.8,192.1 547.5,192.1 596.2,148.4 645.0,148.4 693.8,117.9 742.5,128.1 791.2,128.1 840.0,60.0" fill="none" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,440.0 108.8,353.1 157.5,353.1 206.2,288.5 255.0,353.1 303.8,353.1 352.5,243.8 401.2,243.8 450.0,231.4 498.8,243.8 547.5,243.8 596.2,169.3 645.0,169.3 693.8,231.4 742.5,231.4 791.2,231.4 840.0,60.0" fill="none" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<line x1="680" y1="70" x2="704" y2="70" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<text x="710" y="74" font-size="11" fill="#333">beste Loesung</text>
|
||||||
|
<line x1="680" y1="88" x2="704" y2="88" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<text x="710" y="92" font-size="11" fill="#333">Durchschnitt</text>
|
||||||
|
<line x1="680" y1="106" x2="704" y2="106" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<text x="710" y="110" font-size="11" fill="#333">schlechteste Loesung</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -1,300 +1,300 @@
|
|||||||
Aksoy, Luca, = Hof 1, Tisch 14, Nummer 3
|
Aksoy, Luca, = Hof 1, Tisch 32, Nummer 5
|
||||||
Aksoy, Marie, = Hof 1, Tisch 24, Nummer 5
|
Aksoy, Marie, = Hof 1, Tisch 33, Nummer 4
|
||||||
Aksoy, Marija, = Hof 2, Tisch 54, Nummer 5
|
Aksoy, Marija, = Hof 1, Tisch 31, Nummer 2
|
||||||
Aksoy, Michael, Dr. = Hof 2, Tisch 59, Nummer 4
|
Aksoy, Michael, Dr. = Hof 2, Tisch 64, Nummer 5
|
||||||
Aksoy, Nadine, = Hof 1, Tisch 14, Nummer 4
|
Aksoy, Nadine, = Hof 1, Tisch 32, Nummer 4
|
||||||
Aksoy, Nicole, = Hof 1, Tisch 38, Nummer 5
|
Aksoy, Nicole, = Hof 1, Tisch 24, Nummer 5
|
||||||
Aksoy, Sergej, = Hof 1, Tisch 14, Nummer 2
|
Aksoy, Sergej, = Hof 1, Tisch 32, Nummer 2
|
||||||
Aksoy, Sofia, = Hof 1, Tisch 14, Nummer 5
|
Aksoy, Sofia, = Hof 1, Tisch 32, Nummer 3
|
||||||
Aksoy, Thomas, = Hof 1, Tisch 24, Nummer 2
|
Aksoy, Thomas, = Hof 1, Tisch 33, Nummer 5
|
||||||
Albrecht, Andreas, = Hof 1, Tisch 17, Nummer 5
|
Albrecht, Andreas, = Hof 1, Tisch 20, Nummer 4
|
||||||
Albrecht, Emre, Prof. Dr. = Hof 2, Tisch 67, Nummer 2
|
Albrecht, Emre, Prof. Dr. = Hof 2, Tisch 57, Nummer 2
|
||||||
Albrecht, Sarah, = Hof 1, Tisch 17, Nummer 2
|
Albrecht, Sarah, = Hof 1, Tisch 20, Nummer 2
|
||||||
Albrecht, Yusuf, Prof. Dr. = Hof 1, Tisch 18, Nummer 3
|
Albrecht, Yusuf, Prof. Dr. = Hof 1, Tisch 28, Nummer 3
|
||||||
Arnold, Christian, = Hof 2, Tisch 52, Nummer 3
|
Arnold, Christian, = Hof 2, Tisch 47, Nummer 2
|
||||||
Arnold, Jennifer, = Hof 2, Tisch 53, Nummer 5
|
Arnold, Jennifer, = Hof 2, Tisch 47, Nummer 4
|
||||||
Arnold, Jennifer, Dr. = Hof 2, Tisch 67, Nummer 4
|
Arnold, Jennifer, Dr. = Hof 2, Tisch 57, Nummer 3
|
||||||
Arnold, Leni, = Hof 2, Tisch 52, Nummer 4
|
Arnold, Leni, = Hof 1, Tisch 20, Nummer 3
|
||||||
Arnold, Mila, = Hof 2, Tisch 52, Nummer 2
|
Arnold, Mila, = Hof 2, Tisch 47, Nummer 3
|
||||||
Arnold, Nadine, = Hof 1, Tisch 40, Nummer 4
|
Arnold, Nadine, = Hof 1, Tisch 30, Nummer 2
|
||||||
Arnold, Patrick, = Hof 2, Tisch 53, Nummer 4
|
Arnold, Patrick, = Hof 1, Tisch 20, Nummer 5
|
||||||
Barth, Lina, = Hof 2, Tisch 66, Nummer 5
|
Barth, Lina, = Hof 2, Tisch 83, Nummer 2
|
||||||
Barth, Markus, = Hof 1, Tisch 45, Nummer 2
|
Barth, Markus, = Hof 2, Tisch 68, Nummer 4
|
||||||
Barth, Nadine, = Hof 2, Tisch 66, Nummer 3
|
Barth, Nadine, = Hof 2, Tisch 83, Nummer 3
|
||||||
Barth, Patrick, = Hof 2, Tisch 66, Nummer 2
|
Barth, Patrick, = Hof 2, Tisch 83, Nummer 5
|
||||||
Barth, Timo, = Hof 2, Tisch 66, Nummer 4
|
Barth, Timo, = Hof 2, Tisch 83, Nummer 4
|
||||||
Bauer, Dragana, = Hof 1, Tisch 42, Nummer 2
|
Bauer, Dragana, = Hof 1, Tisch 44, Nummer 3
|
||||||
Bauer, Yusuf, = Hof 1, Tisch 2, Nummer 3
|
Bauer, Yusuf, = Hof 1, Tisch 3, Nummer 5
|
||||||
Becker, Jan, = Hof 2, Tisch 50, Nummer 2
|
Becker, Jan, = Hof 2, Tisch 61, Nummer 2
|
||||||
Becker, Marija, = Hof 1, Tisch 26, Nummer 2
|
Becker, Marija, = Hof 2, Tisch 55, Nummer 2
|
||||||
Becker, Nicole, = Hof 2, Tisch 50, Nummer 4
|
Becker, Nicole, = Hof 2, Tisch 61, Nummer 4
|
||||||
Becker, Sandra, = Hof 2, Tisch 50, Nummer 3
|
Becker, Sandra, = Hof 2, Tisch 61, Nummer 3
|
||||||
Berger, Andreas, = Hof 1, Tisch 33, Nummer 2
|
Berger, Andreas, = Hof 1, Tisch 18, Nummer 2
|
||||||
Berger, Anton, = Hof 1, Tisch 25, Nummer 2
|
Berger, Anton, = Hof 1, Tisch 18, Nummer 4
|
||||||
Berger, Jennifer, = Hof 1, Tisch 25, Nummer 3
|
Berger, Jennifer, = Hof 1, Tisch 18, Nummer 3
|
||||||
Berger, Layla, = Hof 1, Tisch 25, Nummer 4
|
Berger, Layla, = Hof 1, Tisch 17, Nummer 2
|
||||||
Berger, Nadine, Dr. = Hof 2, Tisch 77, Nummer 2
|
Berger, Nadine, Dr. = Hof 2, Tisch 81, Nummer 2
|
||||||
Berger, Stefan, = Hof 1, Tisch 33, Nummer 4
|
Berger, Stefan, = Hof 1, Tisch 17, Nummer 4
|
||||||
Berger, Svenja, = Hof 1, Tisch 33, Nummer 3
|
Berger, Svenja, = Hof 1, Tisch 17, Nummer 3
|
||||||
Bianchi, Jan, Dr. = Hof 1, Tisch 1, Nummer 4
|
Bianchi, Jan, Dr. = Hof 1, Tisch 4, Nummer 2
|
||||||
Bianchi, Mia, = Hof 1, Tisch 21, Nummer 2
|
Bianchi, Mia, = Hof 2, Tisch 50, Nummer 4
|
||||||
Bianchi, Sandra, = Hof 1, Tisch 21, Nummer 3
|
Bianchi, Sandra, = Hof 2, Tisch 50, Nummer 3
|
||||||
Bianchi, Thomas, = Hof 1, Tisch 21, Nummer 4
|
Bianchi, Thomas, = Hof 2, Tisch 50, Nummer 2
|
||||||
Bianchi, Thomas, = Hof 2, Tisch 67, Nummer 5
|
Bianchi, Thomas, = Hof 2, Tisch 58, Nummer 5
|
||||||
Braun, Christian, = Hof 1, Tisch 37, Nummer 2
|
Braun, Christian, = Hof 1, Tisch 41, Nummer 3
|
||||||
Braun, Dragana, = Hof 1, Tisch 36, Nummer 5
|
Braun, Dragana, = Hof 1, Tisch 40, Nummer 4
|
||||||
Braun, Jan, = Hof 1, Tisch 36, Nummer 2
|
Braun, Jan, = Hof 1, Tisch 40, Nummer 3
|
||||||
Braun, Julia, = Hof 1, Tisch 37, Nummer 3
|
Braun, Julia, = Hof 1, Tisch 41, Nummer 4
|
||||||
Braun, Milan, = Hof 1, Tisch 37, Nummer 5
|
Braun, Milan, = Hof 1, Tisch 41, Nummer 2
|
||||||
Braun, Nadine, = Hof 1, Tisch 37, Nummer 4
|
Braun, Nadine, = Hof 1, Tisch 40, Nummer 2
|
||||||
Busch, Emre, = Hof 1, Tisch 28, Nummer 2
|
Busch, Emre, = Hof 1, Tisch 22, Nummer 4
|
||||||
Busch, Marie, = Hof 1, Tisch 28, Nummer 5
|
Busch, Marie, = Hof 1, Tisch 22, Nummer 5
|
||||||
Busch, Michael, = Hof 1, Tisch 28, Nummer 4
|
Busch, Michael, = Hof 1, Tisch 22, Nummer 2
|
||||||
Busch, Olga, = Hof 1, Tisch 28, Nummer 3
|
Busch, Olga, = Hof 1, Tisch 22, Nummer 3
|
||||||
Busch, Patrick, = Hof 2, Tisch 49, Nummer 2
|
Busch, Patrick, = Hof 2, Tisch 54, Nummer 3
|
||||||
Celik, Elif, = Hof 1, Tisch 19, Nummer 5
|
Celik, Elif, = Hof 1, Tisch 33, Nummer 2
|
||||||
Celik, Patrick, = Hof 1, Tisch 19, Nummer 4
|
Celik, Patrick, = Hof 1, Tisch 33, Nummer 3
|
||||||
Dallmann, Charlotte, = Hof 1, Tisch 7, Nummer 5
|
Dallmann, Charlotte, = Hof 1, Tisch 7, Nummer 2
|
||||||
Dallmann, Heinrich, = Hof 1, Tisch 7, Nummer 4
|
Dallmann, Heinrich, = Hof 1, Tisch 7, Nummer 4
|
||||||
Dallmann, Margarete, = Hof 1, Tisch 7, Nummer 3
|
Dallmann, Margarete, = Hof 1, Tisch 7, Nummer 5
|
||||||
Dallmann, Maximilian, = Hof 1, Tisch 7, Nummer 2
|
Dallmann, Maximilian, = Hof 1, Tisch 7, Nummer 3
|
||||||
Demir, Sandra, Dr. = Hof 1, Tisch 19, Nummer 2
|
Demir, Sandra, Dr. = Hof 1, Tisch 45, Nummer 5
|
||||||
Dietrich, Dragana, Prof. Dr. = Hof 2, Tisch 59, Nummer 5
|
Dietrich, Dragana, Prof. Dr. = Hof 2, Tisch 54, Nummer 4
|
||||||
Dietrich, Jennifer, = Hof 2, Tisch 78, Nummer 2
|
Dietrich, Jennifer, = Hof 2, Tisch 85, Nummer 4
|
||||||
Dietrich, Marco, = Hof 2, Tisch 78, Nummer 3
|
Dietrich, Marco, = Hof 2, Tisch 85, Nummer 3
|
||||||
Dietrich, Sofia, = Hof 2, Tisch 78, Nummer 4
|
Dietrich, Sofia, = Hof 2, Tisch 85, Nummer 2
|
||||||
Engel, Anja, = Hof 1, Tisch 10, Nummer 4
|
Engel, Anja, = Hof 2, Tisch 58, Nummer 3
|
||||||
Engel, Anton, = Hof 1, Tisch 11, Nummer 4
|
Engel, Anton, = Hof 2, Tisch 48, Nummer 3
|
||||||
Engel, Julia, = Hof 1, Tisch 11, Nummer 2
|
Engel, Julia, = Hof 2, Tisch 48, Nummer 4
|
||||||
Engel, Nicole, = Hof 1, Tisch 11, Nummer 3
|
Engel, Nicole, = Hof 2, Tisch 48, Nummer 2
|
||||||
Engel, Yusuf, = Hof 1, Tisch 10, Nummer 2
|
Engel, Yusuf, = Hof 2, Tisch 58, Nummer 2
|
||||||
Esposito, Jan, Dr. = Hof 1, Tisch 12, Nummer 3
|
Esposito, Jan, Dr. = Hof 1, Tisch 16, Nummer 2
|
||||||
Esposito, Yusuf, Prof. Dr. = Hof 1, Tisch 26, Nummer 3
|
Esposito, Yusuf, Prof. Dr. = Hof 2, Tisch 55, Nummer 4
|
||||||
Frank, Dennis, = Hof 1, Tisch 10, Nummer 5
|
Frank, Dennis, = Hof 1, Tisch 26, Nummer 3
|
||||||
Frank, Finn, = Hof 1, Tisch 9, Nummer 4
|
Frank, Finn, = Hof 1, Tisch 25, Nummer 3
|
||||||
Frank, Lena, = Hof 1, Tisch 9, Nummer 3
|
Frank, Lena, = Hof 1, Tisch 25, Nummer 2
|
||||||
Frank, Marie, = Hof 1, Tisch 10, Nummer 3
|
Frank, Marie, = Hof 1, Tisch 26, Nummer 2
|
||||||
Frank, Nadine, = Hof 1, Tisch 9, Nummer 2
|
Frank, Nadine, = Hof 1, Tisch 26, Nummer 4
|
||||||
Franke, Amira, = Hof 2, Tisch 73, Nummer 3
|
Franke, Amira, = Hof 2, Tisch 79, Nummer 2
|
||||||
Franke, Julia, = Hof 2, Tisch 81, Nummer 2
|
Franke, Julia, = Hof 2, Tisch 70, Nummer 3
|
||||||
Franke, Marco, = Hof 2, Tisch 81, Nummer 3
|
Franke, Marco, = Hof 2, Tisch 79, Nummer 3
|
||||||
Franke, Michael, = Hof 2, Tisch 73, Nummer 2
|
Franke, Michael, = Hof 2, Tisch 79, Nummer 4
|
||||||
Franke, Olga, = Hof 2, Tisch 81, Nummer 4
|
Franke, Olga, = Hof 2, Tisch 70, Nummer 4
|
||||||
Freifrau von Waldeck, Antonia, = Hof 1, Tisch 6, Nummer 4
|
Freifrau von Waldeck, Antonia, = Hof 1, Tisch 6, Nummer 3
|
||||||
Freiherr von Waldeck, Konstantin, Dr. = Hof 1, Tisch 6, Nummer 2
|
Freiherr von Waldeck, Konstantin, Dr. = Hof 1, Tisch 6, Nummer 4
|
||||||
Grothe, Alexander, Dr. h.c. = Hof 1, Tisch 5, Nummer 5
|
Grothe, Alexander, Dr. h.c. = Hof 1, Tisch 5, Nummer 3
|
||||||
Grothe, Beate, = Hof 1, Tisch 5, Nummer 2
|
Grothe, Beate, = Hof 1, Tisch 5, Nummer 5
|
||||||
Haas, Jennifer, Dr. = Hof 1, Tisch 45, Nummer 4
|
Haas, Jennifer, Dr. = Hof 2, Tisch 68, Nummer 5
|
||||||
Haas, Patrick, = Hof 1, Tisch 42, Nummer 4
|
Haas, Patrick, = Hof 1, Tisch 44, Nummer 4
|
||||||
Hansen, Giovanna, = Hof 1, Tisch 30, Nummer 4
|
Hansen, Giovanna, = Hof 1, Tisch 1, Nummer 3
|
||||||
Hansen, Markus, = Hof 1, Tisch 30, Nummer 3
|
Hansen, Markus, = Hof 1, Tisch 1, Nummer 4
|
||||||
Hansen, Nicole, Dr. = Hof 1, Tisch 42, Nummer 3
|
Hansen, Nicole, Dr. = Hof 1, Tisch 45, Nummer 2
|
||||||
Hansen, Olga, = Hof 1, Tisch 30, Nummer 2
|
Hansen, Olga, = Hof 1, Tisch 1, Nummer 2
|
||||||
Hansen, Thomas, = Hof 1, Tisch 12, Nummer 5
|
Hansen, Thomas, = Hof 1, Tisch 16, Nummer 3
|
||||||
Hartmann, Deniz, = Hof 2, Tisch 85, Nummer 4
|
Hartmann, Deniz, = Hof 1, Tisch 13, Nummer 2
|
||||||
Hartmann, Marija, = Hof 2, Tisch 86, Nummer 3
|
Hartmann, Marija, = Hof 1, Tisch 23, Nummer 4
|
||||||
Hartmann, Nadine, = Hof 2, Tisch 86, Nummer 2
|
Hartmann, Nadine, = Hof 1, Tisch 13, Nummer 3
|
||||||
Hartmann, Olga, = Hof 2, Tisch 85, Nummer 3
|
Hartmann, Olga, = Hof 1, Tisch 23, Nummer 2
|
||||||
Hartmann, Thomas, = Hof 2, Tisch 85, Nummer 2
|
Hartmann, Thomas, = Hof 1, Tisch 23, Nummer 3
|
||||||
Hoffmann, Emre, = Hof 2, Tisch 49, Nummer 3
|
Hoffmann, Emre, = Hof 2, Tisch 54, Nummer 2
|
||||||
Hoffmann, Patrick, Prof. Dr. = Hof 1, Tisch 40, Nummer 5
|
Hoffmann, Patrick, Prof. Dr. = Hof 1, Tisch 30, Nummer 4
|
||||||
Hoffmann, Thomas, Dr. = Hof 1, Tisch 32, Nummer 4
|
Hoffmann, Thomas, Dr. = Hof 1, Tisch 21, Nummer 4
|
||||||
Horn, Kathrin, = Hof 2, Tisch 84, Nummer 4
|
Horn, Kathrin, = Hof 1, Tisch 39, Nummer 2
|
||||||
Horn, Layla, = Hof 2, Tisch 84, Nummer 3
|
Horn, Layla, = Hof 1, Tisch 39, Nummer 4
|
||||||
Horn, Leon, = Hof 2, Tisch 84, Nummer 5
|
Horn, Leon, = Hof 1, Tisch 39, Nummer 5
|
||||||
Horn, Michael, = Hof 2, Tisch 84, Nummer 2
|
Horn, Michael, = Hof 1, Tisch 39, Nummer 3
|
||||||
Kaya, Christina, = Hof 1, Tisch 43, Nummer 4
|
Kaya, Christina, = Hof 2, Tisch 56, Nummer 2
|
||||||
Kaya, Luca, = Hof 1, Tisch 43, Nummer 3
|
Kaya, Luca, = Hof 2, Tisch 56, Nummer 4
|
||||||
Kaya, Nicole, = Hof 1, Tisch 43, Nummer 2
|
Kaya, Nicole, = Hof 2, Tisch 56, Nummer 3
|
||||||
Kaya, Patrick, Dr. = Hof 1, Tisch 1, Nummer 2
|
Kaya, Patrick, Dr. = Hof 1, Tisch 3, Nummer 4
|
||||||
Kaya, Timo, Prof. Dr. = Hof 1, Tisch 19, Nummer 3
|
Kaya, Timo, Prof. Dr. = Hof 1, Tisch 45, Nummer 4
|
||||||
Kessler, Ferdinand, Dr. = Hof 1, Tisch 5, Nummer 4
|
Kessler, Ferdinand, Dr. = Hof 1, Tisch 5, Nummer 2
|
||||||
Kessler, Viktoria, = Hof 1, Tisch 5, Nummer 3
|
Kessler, Viktoria, = Hof 1, Tisch 5, Nummer 4
|
||||||
Klein, Emre, = Hof 1, Tisch 2, Nummer 4
|
Klein, Emre, = Hof 1, Tisch 3, Nummer 3
|
||||||
Klein, Lina, = Hof 2, Tisch 63, Nummer 4
|
Klein, Lina, = Hof 2, Tisch 67, Nummer 4
|
||||||
Klein, Markus, = Hof 1, Tisch 38, Nummer 4
|
Klein, Markus, = Hof 1, Tisch 24, Nummer 2
|
||||||
Klein, Milan, = Hof 2, Tisch 63, Nummer 2
|
Klein, Milan, = Hof 2, Tisch 67, Nummer 3
|
||||||
Klein, Olga, Dr. = Hof 2, Tisch 57, Nummer 2
|
Klein, Olga, Dr. = Hof 2, Tisch 57, Nummer 4
|
||||||
Klein, Stefanie, = Hof 2, Tisch 63, Nummer 3
|
Klein, Stefanie, = Hof 2, Tisch 67, Nummer 2
|
||||||
Koch, Emil, = Hof 2, Tisch 48, Nummer 2
|
Koch, Emil, = Hof 1, Tisch 34, Nummer 4
|
||||||
Koch, Jan, = Hof 2, Tisch 48, Nummer 5
|
Koch, Jan, = Hof 1, Tisch 34, Nummer 2
|
||||||
Koch, Kathrin, Dr. = Hof 2, Tisch 68, Nummer 3
|
Koch, Kathrin, Dr. = Hof 2, Tisch 71, Nummer 2
|
||||||
Koch, Marie, = Hof 2, Tisch 48, Nummer 3
|
Koch, Marie, = Hof 1, Tisch 34, Nummer 5
|
||||||
Koch, Michael, = Hof 2, Tisch 49, Nummer 4
|
Koch, Michael, = Hof 1, Tisch 25, Nummer 5
|
||||||
Koch, Olga, = Hof 2, Tisch 48, Nummer 4
|
Koch, Olga, = Hof 1, Tisch 34, Nummer 3
|
||||||
Koch, Sarah, = Hof 2, Tisch 49, Nummer 5
|
Koch, Sarah, = Hof 1, Tisch 25, Nummer 4
|
||||||
Kovac, Anja, = Hof 1, Tisch 15, Nummer 3
|
Kovac, Anja, = Hof 1, Tisch 27, Nummer 2
|
||||||
Kovac, Henry, = Hof 1, Tisch 15, Nummer 2
|
Kovac, Henry, = Hof 1, Tisch 35, Nummer 2
|
||||||
Kovac, Lena, = Hof 1, Tisch 15, Nummer 4
|
Kovac, Lena, = Hof 1, Tisch 27, Nummer 4
|
||||||
Kovac, Luca, = Hof 2, Tisch 71, Nummer 2
|
Kovac, Luca, = Hof 2, Tisch 75, Nummer 3
|
||||||
Kovac, Marco, = Hof 1, Tisch 15, Nummer 5
|
Kovac, Marco, = Hof 1, Tisch 27, Nummer 3
|
||||||
Kovac, Marija, = Hof 1, Tisch 24, Nummer 4
|
Kovac, Marija, = Hof 1, Tisch 35, Nummer 4
|
||||||
Kovac, Matthias, = Hof 1, Tisch 26, Nummer 4
|
Kovac, Matthias, = Hof 2, Tisch 55, Nummer 3
|
||||||
Kovac, Tobias, = Hof 1, Tisch 24, Nummer 3
|
Kovac, Tobias, = Hof 1, Tisch 35, Nummer 3
|
||||||
Kraus, Markus, = Hof 1, Tisch 3, Nummer 5
|
Kraus, Markus, = Hof 1, Tisch 10, Nummer 2
|
||||||
Kraus, Patrick, Dr. = Hof 2, Tisch 57, Nummer 5
|
Kraus, Patrick, Dr. = Hof 2, Tisch 65, Nummer 5
|
||||||
Krause, Andreas, = Hof 2, Tisch 74, Nummer 5
|
Krause, Andreas, = Hof 1, Tisch 38, Nummer 2
|
||||||
Krause, Arda, = Hof 2, Tisch 74, Nummer 4
|
Krause, Arda, = Hof 1, Tisch 38, Nummer 4
|
||||||
Krause, Christina, Dr. = Hof 1, Tisch 1, Nummer 3
|
Krause, Christina, Dr. = Hof 1, Tisch 4, Nummer 4
|
||||||
Krause, Daniel, = Hof 1, Tisch 38, Nummer 3
|
Krause, Daniel, = Hof 1, Tisch 24, Nummer 4
|
||||||
Krause, Dragana, Dr. = Hof 2, Tisch 71, Nummer 3
|
Krause, Dragana, Dr. = Hof 2, Tisch 75, Nummer 4
|
||||||
Krause, Emma, = Hof 2, Tisch 74, Nummer 2
|
Krause, Emma, = Hof 1, Tisch 38, Nummer 3
|
||||||
Krause, Julia, = Hof 2, Tisch 74, Nummer 3
|
Krause, Julia, = Hof 1, Tisch 38, Nummer 5
|
||||||
Krause, Matthias, = Hof 2, Tisch 58, Nummer 4
|
Krause, Matthias, = Hof 2, Tisch 64, Nummer 4
|
||||||
Krause, Thomas, = Hof 1, Tisch 41, Nummer 2
|
Krause, Thomas, = Hof 1, Tisch 44, Nummer 5
|
||||||
Kuhn, Julia, Dr. = Hof 2, Tisch 68, Nummer 4
|
Kuhn, Julia, Dr. = Hof 2, Tisch 71, Nummer 4
|
||||||
Lange, Dragana, = Hof 2, Tisch 72, Nummer 2
|
Lange, Dragana, = Hof 1, Tisch 36, Nummer 3
|
||||||
Lange, Jan, = Hof 2, Tisch 73, Nummer 5
|
Lange, Jan, = Hof 2, Tisch 52, Nummer 3
|
||||||
Lange, Michael, = Hof 2, Tisch 72, Nummer 3
|
Lange, Michael, = Hof 1, Tisch 36, Nummer 4
|
||||||
Lange, Sergej, = Hof 2, Tisch 59, Nummer 3
|
Lange, Sergej, = Hof 2, Tisch 54, Nummer 5
|
||||||
Lange, Sofia, = Hof 2, Tisch 72, Nummer 4
|
Lange, Sofia, = Hof 2, Tisch 52, Nummer 5
|
||||||
Lange, Svenja, = Hof 2, Tisch 73, Nummer 4
|
Lange, Svenja, = Hof 1, Tisch 36, Nummer 2
|
||||||
Lehmann, Giovanna, = Hof 1, Tisch 16, Nummer 2
|
Lehmann, Giovanna, = Hof 1, Tisch 8, Nummer 5
|
||||||
Lehmann, Layla, = Hof 1, Tisch 16, Nummer 5
|
Lehmann, Layla, = Hof 1, Tisch 8, Nummer 3
|
||||||
Lehmann, Markus, = Hof 1, Tisch 16, Nummer 4
|
Lehmann, Markus, = Hof 1, Tisch 9, Nummer 2
|
||||||
Lehmann, Milan, = Hof 1, Tisch 16, Nummer 3
|
Lehmann, Milan, = Hof 1, Tisch 8, Nummer 2
|
||||||
Lehmann, Nicole, = Hof 1, Tisch 17, Nummer 3
|
Lehmann, Nicole, = Hof 1, Tisch 8, Nummer 4
|
||||||
Lehmann, Patrick, = Hof 2, Tisch 77, Nummer 4
|
Lehmann, Patrick, = Hof 2, Tisch 81, Nummer 3
|
||||||
Lehmann, Thomas, = Hof 1, Tisch 17, Nummer 4
|
Lehmann, Thomas, = Hof 1, Tisch 9, Nummer 3
|
||||||
Ludwig, Aylin, Dr. = Hof 2, Tisch 57, Nummer 4
|
Ludwig, Aylin, Dr. = Hof 2, Tisch 64, Nummer 3
|
||||||
Ludwig, Elias, = Hof 2, Tisch 56, Nummer 3
|
Ludwig, Elias, = Hof 2, Tisch 82, Nummer 2
|
||||||
Ludwig, Elif, = Hof 2, Tisch 56, Nummer 4
|
Ludwig, Elif, = Hof 2, Tisch 82, Nummer 3
|
||||||
Ludwig, Emre, = Hof 2, Tisch 56, Nummer 2
|
Ludwig, Emre, = Hof 2, Tisch 82, Nummer 4
|
||||||
Ludwig, Emre, Prof. Dr. = Hof 1, Tisch 38, Nummer 2
|
Ludwig, Emre, Prof. Dr. = Hof 1, Tisch 24, Nummer 3
|
||||||
Ludwig, Giovanna, = Hof 2, Tisch 56, Nummer 5
|
Ludwig, Giovanna, = Hof 2, Tisch 82, Nummer 5
|
||||||
Maier, Arda, = Hof 2, Tisch 60, Nummer 2
|
Maier, Arda, = Hof 2, Tisch 78, Nummer 3
|
||||||
Maier, Christian, = Hof 2, Tisch 60, Nummer 4
|
Maier, Christian, = Hof 2, Tisch 78, Nummer 5
|
||||||
Maier, Olga, = Hof 2, Tisch 60, Nummer 3
|
Maier, Olga, = Hof 2, Tisch 78, Nummer 4
|
||||||
Maier, Sarah, = Hof 2, Tisch 60, Nummer 5
|
Maier, Sarah, = Hof 2, Tisch 78, Nummer 2
|
||||||
Neumann, Jennifer, = Hof 2, Tisch 83, Nummer 4
|
Neumann, Jennifer, = Hof 1, Tisch 42, Nummer 3
|
||||||
Neumann, Lina, = Hof 2, Tisch 83, Nummer 3
|
Neumann, Lina, = Hof 1, Tisch 42, Nummer 5
|
||||||
Neumann, Matteo, = Hof 2, Tisch 83, Nummer 2
|
Neumann, Matteo, = Hof 1, Tisch 42, Nummer 2
|
||||||
Neumann, Thomas, = Hof 2, Tisch 83, Nummer 5
|
Neumann, Thomas, = Hof 1, Tisch 42, Nummer 4
|
||||||
Nguyen, Anja, = Hof 2, Tisch 51, Nummer 3
|
Nguyen, Anja, = Hof 2, Tisch 62, Nummer 3
|
||||||
Nguyen, Daniel, = Hof 2, Tisch 51, Nummer 4
|
Nguyen, Daniel, = Hof 2, Tisch 62, Nummer 4
|
||||||
Nguyen, Julia, = Hof 1, Tisch 13, Nummer 4
|
Nguyen, Julia, = Hof 1, Tisch 15, Nummer 3
|
||||||
Nguyen, Sofia, = Hof 2, Tisch 51, Nummer 2
|
Nguyen, Sofia, = Hof 2, Tisch 62, Nummer 2
|
||||||
Nowak, Aylin, = Hof 1, Tisch 36, Nummer 3
|
Nowak, Aylin, = Hof 2, Tisch 52, Nummer 4
|
||||||
Nowak, Felix, = Hof 1, Tisch 35, Nummer 2
|
Nowak, Felix, = Hof 2, Tisch 53, Nummer 5
|
||||||
Nowak, Kathrin, = Hof 1, Tisch 36, Nummer 4
|
Nowak, Kathrin, = Hof 2, Tisch 52, Nummer 2
|
||||||
Nowak, Lina, = Hof 1, Tisch 35, Nummer 4
|
Nowak, Lina, = Hof 2, Tisch 53, Nummer 2
|
||||||
Nowak, Markus, = Hof 1, Tisch 35, Nummer 5
|
Nowak, Markus, = Hof 2, Tisch 53, Nummer 4
|
||||||
Nowak, Noah, = Hof 1, Tisch 35, Nummer 3
|
Nowak, Noah, = Hof 2, Tisch 53, Nummer 3
|
||||||
Ott, Daniel, = Hof 2, Tisch 86, Nummer 5
|
Ott, Daniel, = Hof 1, Tisch 13, Nummer 4
|
||||||
Ott, Hannah, = Hof 2, Tisch 80, Nummer 3
|
Ott, Hannah, = Hof 1, Tisch 12, Nummer 2
|
||||||
Ott, Luca, = Hof 2, Tisch 71, Nummer 4
|
Ott, Luca, = Hof 2, Tisch 75, Nummer 5
|
||||||
Ott, Matthias, = Hof 2, Tisch 80, Nummer 2
|
Ott, Matthias, = Hof 1, Tisch 12, Nummer 3
|
||||||
Ott, Melanie, = Hof 2, Tisch 80, Nummer 4
|
Ott, Melanie, = Hof 1, Tisch 13, Nummer 5
|
||||||
Ott, Olga, = Hof 2, Tisch 86, Nummer 4
|
Ott, Olga, = Hof 1, Tisch 12, Nummer 4
|
||||||
Ott, Sergej, Prof. Dr. = Hof 1, Tisch 42, Nummer 5
|
Ott, Sergej, Prof. Dr. = Hof 1, Tisch 44, Nummer 2
|
||||||
Ott, Yusuf, Prof. Dr. = Hof 2, Tisch 77, Nummer 3
|
Ott, Yusuf, Prof. Dr. = Hof 2, Tisch 81, Nummer 4
|
||||||
Peters, Christian, = Hof 1, Tisch 3, Nummer 4
|
Peters, Christian, = Hof 1, Tisch 10, Nummer 4
|
||||||
Peters, Nicole, = Hof 1, Tisch 41, Nummer 3
|
Peters, Nicole, = Hof 1, Tisch 45, Nummer 3
|
||||||
Petrov, Giovanna, = Hof 1, Tisch 3, Nummer 3
|
Petrov, Giovanna, = Hof 1, Tisch 10, Nummer 5
|
||||||
Petrov, Kathrin, = Hof 1, Tisch 20, Nummer 4
|
Petrov, Kathrin, = Hof 2, Tisch 46, Nummer 3
|
||||||
Petrov, Kathrin, Prof. Dr. = Hof 1, Tisch 4, Nummer 2
|
Petrov, Kathrin, Prof. Dr. = Hof 1, Tisch 11, Nummer 5
|
||||||
Petrov, Matthias, = Hof 1, Tisch 45, Nummer 5
|
Petrov, Matthias, = Hof 2, Tisch 59, Nummer 3
|
||||||
Petrov, Milan, = Hof 1, Tisch 20, Nummer 5
|
Petrov, Milan, = Hof 2, Tisch 46, Nummer 5
|
||||||
Petrov, Sergej, = Hof 2, Tisch 54, Nummer 3
|
Petrov, Sergej, = Hof 1, Tisch 31, Nummer 4
|
||||||
Pohl, Dragana, = Hof 2, Tisch 75, Nummer 4
|
Pohl, Dragana, = Hof 2, Tisch 77, Nummer 3
|
||||||
Pohl, Emre, = Hof 2, Tisch 75, Nummer 5
|
Pohl, Emre, = Hof 2, Tisch 77, Nummer 2
|
||||||
Pohl, Mia, = Hof 2, Tisch 75, Nummer 2
|
Pohl, Mia, = Hof 2, Tisch 77, Nummer 5
|
||||||
Pohl, Theo, = Hof 2, Tisch 75, Nummer 3
|
Pohl, Theo, = Hof 2, Tisch 77, Nummer 4
|
||||||
Polat, Kathrin, = Hof 2, Tisch 54, Nummer 2
|
Polat, Kathrin, = Hof 1, Tisch 31, Nummer 5
|
||||||
Polat, Katrin, = Hof 2, Tisch 88, Nummer 3
|
Polat, Katrin, = Hof 2, Tisch 69, Nummer 2
|
||||||
Polat, Marija, = Hof 1, Tisch 40, Nummer 2
|
Polat, Marija, = Hof 1, Tisch 30, Nummer 5
|
||||||
Polat, Markus, = Hof 2, Tisch 88, Nummer 2
|
Polat, Markus, = Hof 2, Tisch 69, Nummer 3
|
||||||
Polat, Sarah, = Hof 2, Tisch 53, Nummer 2
|
Polat, Sarah, = Hof 2, Tisch 70, Nummer 2
|
||||||
Polat, Stefan, = Hof 2, Tisch 53, Nummer 3
|
Polat, Stefan, = Hof 2, Tisch 70, Nummer 5
|
||||||
Polat, Stefanie, = Hof 2, Tisch 88, Nummer 4
|
Polat, Stefanie, = Hof 2, Tisch 69, Nummer 4
|
||||||
Popescu, Matthias, = Hof 1, Tisch 18, Nummer 5
|
Popescu, Matthias, = Hof 1, Tisch 28, Nummer 5
|
||||||
Richter, Anja, = Hof 1, Tisch 31, Nummer 5
|
Richter, Anja, = Hof 1, Tisch 2, Nummer 2
|
||||||
Richter, Anja, Prof. Dr. = Hof 2, Tisch 65, Nummer 3
|
Richter, Anja, Prof. Dr. = Hof 2, Tisch 74, Nummer 3
|
||||||
Richter, Anton, = Hof 1, Tisch 31, Nummer 4
|
Richter, Anton, = Hof 1, Tisch 2, Nummer 5
|
||||||
Richter, Greta, = Hof 1, Tisch 31, Nummer 3
|
Richter, Greta, = Hof 1, Tisch 2, Nummer 4
|
||||||
Richter, Julia, Prof. Dr. = Hof 1, Tisch 45, Nummer 3
|
Richter, Julia, Prof. Dr. = Hof 2, Tisch 59, Nummer 4
|
||||||
Richter, Marco, = Hof 1, Tisch 40, Nummer 3
|
Richter, Marco, = Hof 1, Tisch 30, Nummer 3
|
||||||
Richter, Matthias, = Hof 1, Tisch 31, Nummer 2
|
Richter, Matthias, = Hof 1, Tisch 2, Nummer 3
|
||||||
Richter, Stefan, = Hof 2, Tisch 62, Nummer 3
|
Richter, Stefan, = Hof 2, Tisch 66, Nummer 2
|
||||||
Rossi, Emilia, = Hof 1, Tisch 29, Nummer 4
|
Rossi, Emilia, = Hof 2, Tisch 88, Nummer 2
|
||||||
Rossi, Luca, = Hof 1, Tisch 29, Nummer 3
|
Rossi, Luca, = Hof 2, Tisch 88, Nummer 4
|
||||||
Rossi, Melanie, = Hof 1, Tisch 29, Nummer 2
|
Rossi, Melanie, = Hof 2, Tisch 88, Nummer 3
|
||||||
Roth, Christian, = Hof 2, Tisch 64, Nummer 3
|
Roth, Christian, = Hof 2, Tisch 73, Nummer 3
|
||||||
Roth, Julia, Prof. Dr. = Hof 1, Tisch 13, Nummer 3
|
Roth, Julia, Prof. Dr. = Hof 1, Tisch 15, Nummer 4
|
||||||
Roth, Olga, = Hof 2, Tisch 67, Nummer 3
|
Roth, Olga, = Hof 2, Tisch 58, Nummer 4
|
||||||
Roth, Sarah, = Hof 2, Tisch 64, Nummer 2
|
Roth, Sarah, = Hof 2, Tisch 73, Nummer 2
|
||||||
Roth, Sofia, = Hof 2, Tisch 64, Nummer 4
|
Roth, Sofia, = Hof 2, Tisch 73, Nummer 4
|
||||||
Sahin, Kathrin, = Hof 2, Tisch 55, Nummer 2
|
Sahin, Kathrin, = Hof 2, Tisch 80, Nummer 3
|
||||||
Sahin, Markus, = Hof 2, Tisch 55, Nummer 4
|
Sahin, Markus, = Hof 2, Tisch 80, Nummer 4
|
||||||
Sahin, Nicole, = Hof 2, Tisch 55, Nummer 5
|
Sahin, Nicole, = Hof 2, Tisch 80, Nummer 2
|
||||||
Sahin, Patrick, = Hof 2, Tisch 55, Nummer 3
|
Sahin, Patrick, = Hof 2, Tisch 80, Nummer 5
|
||||||
Sahin, Thomas, = Hof 2, Tisch 65, Nummer 2
|
Sahin, Thomas, = Hof 2, Tisch 74, Nummer 2
|
||||||
Schmidt, Giovanna, = Hof 1, Tisch 44, Nummer 3
|
Schmidt, Giovanna, = Hof 2, Tisch 60, Nummer 3
|
||||||
Schmidt, Marie, = Hof 1, Tisch 44, Nummer 2
|
Schmidt, Marie, = Hof 2, Tisch 60, Nummer 2
|
||||||
Schmidt, Matthias, = Hof 1, Tisch 44, Nummer 5
|
Schmidt, Matthias, = Hof 2, Tisch 60, Nummer 4
|
||||||
Schmidt, Nicole, = Hof 1, Tisch 12, Nummer 4
|
Schmidt, Nicole, = Hof 1, Tisch 16, Nummer 4
|
||||||
Schmitt, Dennis, Prof. Dr. = Hof 2, Tisch 62, Nummer 4
|
Schmitt, Dennis, Prof. Dr. = Hof 2, Tisch 66, Nummer 3
|
||||||
Schmitt, Markus, = Hof 1, Tisch 22, Nummer 5
|
Schmitt, Markus, = Hof 1, Tisch 11, Nummer 4
|
||||||
Schmitt, Markus, = Hof 1, Tisch 4, Nummer 3
|
Schmitt, Markus, = Hof 2, Tisch 87, Nummer 4
|
||||||
Schmitt, Sarah, = Hof 1, Tisch 22, Nummer 4
|
Schmitt, Sarah, = Hof 2, Tisch 87, Nummer 3
|
||||||
Schmitt, Sofia, = Hof 1, Tisch 22, Nummer 2
|
Schmitt, Sofia, = Hof 2, Tisch 87, Nummer 2
|
||||||
Schmitt, Stefan, Prof. Dr. = Hof 2, Tisch 69, Nummer 4
|
Schmitt, Stefan, Prof. Dr. = Hof 2, Tisch 72, Nummer 4
|
||||||
Schwarz, Giovanna, = Hof 2, Tisch 58, Nummer 3
|
Schwarz, Giovanna, = Hof 2, Tisch 65, Nummer 3
|
||||||
Seidel, Anja, Dr. = Hof 1, Tisch 32, Nummer 5
|
Seidel, Anja, Dr. = Hof 1, Tisch 21, Nummer 2
|
||||||
Seidel, Markus, Dr. = Hof 1, Tisch 3, Nummer 2
|
Seidel, Markus, Dr. = Hof 1, Tisch 10, Nummer 3
|
||||||
Seidel, Yusuf, Prof. Dr. = Hof 1, Tisch 2, Nummer 5
|
Seidel, Yusuf, Prof. Dr. = Hof 1, Tisch 3, Nummer 2
|
||||||
Seifert, Elif, = Hof 1, Tisch 23, Nummer 4
|
Seifert, Elif, = Hof 2, Tisch 68, Nummer 2
|
||||||
Seifert, Leni, = Hof 1, Tisch 23, Nummer 3
|
Seifert, Leni, = Hof 2, Tisch 76, Nummer 2
|
||||||
Seifert, Marco, Prof. Dr. = Hof 2, Tisch 57, Nummer 3
|
Seifert, Marco, Prof. Dr. = Hof 2, Tisch 65, Nummer 4
|
||||||
Seifert, Nicole, = Hof 1, Tisch 22, Nummer 3
|
Seifert, Nicole, = Hof 2, Tisch 76, Nummer 4
|
||||||
Seifert, Stefanie, Dr. = Hof 1, Tisch 13, Nummer 2
|
Seifert, Stefanie, Dr. = Hof 1, Tisch 15, Nummer 2
|
||||||
Seifert, Timo, = Hof 1, Tisch 23, Nummer 5
|
Seifert, Timo, = Hof 2, Tisch 76, Nummer 3
|
||||||
Seifert, Yusuf, = Hof 1, Tisch 23, Nummer 2
|
Seifert, Yusuf, = Hof 2, Tisch 68, Nummer 3
|
||||||
Simon, Andreas, = Hof 2, Tisch 61, Nummer 2
|
Simon, Andreas, = Hof 2, Tisch 84, Nummer 2
|
||||||
Simon, Emma, = Hof 2, Tisch 61, Nummer 4
|
Simon, Emma, = Hof 2, Tisch 84, Nummer 4
|
||||||
Simon, Lena, = Hof 2, Tisch 61, Nummer 5
|
Simon, Lena, = Hof 2, Tisch 84, Nummer 5
|
||||||
Simon, Markus, = Hof 2, Tisch 61, Nummer 3
|
Simon, Markus, = Hof 2, Tisch 84, Nummer 3
|
||||||
Simon, Svenja, = Hof 1, Tisch 18, Nummer 2
|
Simon, Svenja, = Hof 1, Tisch 28, Nummer 2
|
||||||
Stein, Ben, = Hof 2, Tisch 76, Nummer 5
|
Stein, Ben, = Hof 2, Tisch 63, Nummer 2
|
||||||
Stein, Emilia, = Hof 2, Tisch 76, Nummer 4
|
Stein, Emilia, = Hof 2, Tisch 63, Nummer 3
|
||||||
Stein, Giovanna, = Hof 2, Tisch 76, Nummer 2
|
Stein, Giovanna, = Hof 2, Tisch 63, Nummer 4
|
||||||
Stein, Markus, Prof. Dr. = Hof 1, Tisch 18, Nummer 4
|
Stein, Markus, Prof. Dr. = Hof 1, Tisch 28, Nummer 4
|
||||||
Stein, Nadine, Dr. = Hof 1, Tisch 4, Nummer 4
|
Stein, Nadine, Dr. = Hof 1, Tisch 11, Nummer 2
|
||||||
Stein, Thomas, = Hof 2, Tisch 76, Nummer 3
|
Stein, Thomas, = Hof 2, Tisch 63, Nummer 5
|
||||||
Steinbach, Elisabeth, = Hof 1, Tisch 6, Nummer 3
|
Steinbach, Elisabeth, = Hof 1, Tisch 6, Nummer 5
|
||||||
Steinbach, Georg, = Hof 1, Tisch 6, Nummer 5
|
Steinbach, Georg, = Hof 1, Tisch 6, Nummer 2
|
||||||
Thiel, Christina, = Hof 2, Tisch 82, Nummer 2
|
Thiel, Christina, = Hof 2, Tisch 86, Nummer 3
|
||||||
Thiel, Jan, Dr. = Hof 2, Tisch 65, Nummer 4
|
Thiel, Jan, Dr. = Hof 2, Tisch 74, Nummer 4
|
||||||
Thiel, Julia, = Hof 2, Tisch 82, Nummer 3
|
Thiel, Julia, = Hof 2, Tisch 86, Nummer 4
|
||||||
Thiel, Yusuf, = Hof 2, Tisch 82, Nummer 4
|
Thiel, Yusuf, = Hof 2, Tisch 86, Nummer 2
|
||||||
Tran, Marija, = Hof 2, Tisch 69, Nummer 2
|
Tran, Marija, = Hof 2, Tisch 72, Nummer 2
|
||||||
Tran, Olga, = Hof 1, Tisch 32, Nummer 2
|
Tran, Olga, = Hof 1, Tisch 21, Nummer 5
|
||||||
Tran, Thomas, Prof. Dr. = Hof 2, Tisch 54, Nummer 4
|
Tran, Thomas, Prof. Dr. = Hof 1, Tisch 31, Nummer 3
|
||||||
Wagner, Henry, = Hof 2, Tisch 46, Nummer 3
|
Wagner, Henry, = Hof 1, Tisch 29, Nummer 5
|
||||||
Wagner, Marco, = Hof 2, Tisch 46, Nummer 5
|
Wagner, Marco, = Hof 1, Tisch 29, Nummer 3
|
||||||
Wagner, Nicole, = Hof 2, Tisch 46, Nummer 4
|
Wagner, Nicole, = Hof 1, Tisch 29, Nummer 2
|
||||||
Wagner, Sarah, = Hof 2, Tisch 46, Nummer 2
|
Wagner, Sarah, = Hof 1, Tisch 29, Nummer 4
|
||||||
Weber, Andreas, = Hof 1, Tisch 44, Nummer 4
|
Weber, Andreas, = Hof 2, Tisch 59, Nummer 2
|
||||||
Weber, Julia, = Hof 1, Tisch 2, Nummer 2
|
Weber, Julia, = Hof 1, Tisch 11, Nummer 3
|
||||||
Weber, Katrin, = Hof 2, Tisch 68, Nummer 2
|
Weber, Katrin, = Hof 2, Tisch 71, Nummer 3
|
||||||
Weber, Yusuf, = Hof 2, Tisch 58, Nummer 2
|
Weber, Yusuf, = Hof 2, Tisch 65, Nummer 2
|
||||||
Werner, Andreas, = Hof 1, Tisch 39, Nummer 4
|
Werner, Andreas, = Hof 1, Tisch 19, Nummer 3
|
||||||
Werner, Dennis, Prof. Dr. = Hof 1, Tisch 32, Nummer 3
|
Werner, Dennis, Prof. Dr. = Hof 1, Tisch 21, Nummer 3
|
||||||
Werner, Katrin, = Hof 2, Tisch 59, Nummer 2
|
Werner, Katrin, = Hof 2, Tisch 64, Nummer 2
|
||||||
Werner, Luca, = Hof 2, Tisch 69, Nummer 3
|
Werner, Luca, = Hof 2, Tisch 72, Nummer 3
|
||||||
Werner, Marco, = Hof 1, Tisch 39, Nummer 3
|
Werner, Marco, = Hof 1, Tisch 19, Nummer 4
|
||||||
Werner, Nadine, = Hof 1, Tisch 39, Nummer 5
|
Werner, Nadine, = Hof 1, Tisch 19, Nummer 2
|
||||||
Werner, Sandra, = Hof 1, Tisch 39, Nummer 2
|
Werner, Sandra, = Hof 1, Tisch 19, Nummer 5
|
||||||
Winkler, Lena, = Hof 1, Tisch 20, Nummer 2
|
Winkler, Lena, = Hof 2, Tisch 46, Nummer 4
|
||||||
Winkler, Marco, = Hof 1, Tisch 1, Nummer 5
|
Winkler, Marco, = Hof 1, Tisch 4, Nummer 3
|
||||||
Winkler, Patrick, = Hof 1, Tisch 20, Nummer 3
|
Winkler, Patrick, = Hof 2, Tisch 46, Nummer 2
|
||||||
Winkler, Thomas, = Hof 1, Tisch 12, Nummer 2
|
Winkler, Thomas, = Hof 1, Tisch 15, Nummer 5
|
||||||
Wolf, Ben, = Hof 2, Tisch 79, Nummer 5
|
Wolf, Ben, = Hof 1, Tisch 43, Nummer 5
|
||||||
Wolf, Emma, = Hof 2, Tisch 79, Nummer 4
|
Wolf, Emma, = Hof 1, Tisch 43, Nummer 4
|
||||||
Wolf, Julia, = Hof 2, Tisch 79, Nummer 3
|
Wolf, Julia, = Hof 1, Tisch 43, Nummer 2
|
||||||
Wolf, Thomas, = Hof 2, Tisch 79, Nummer 2
|
Wolf, Thomas, = Hof 1, Tisch 43, Nummer 3
|
||||||
Zimmermann, Jan, = Hof 2, Tisch 70, Nummer 2
|
Zimmermann, Jan, = Hof 1, Tisch 37, Nummer 5
|
||||||
Zimmermann, Markus, = Hof 2, Tisch 70, Nummer 3
|
Zimmermann, Markus, = Hof 1, Tisch 37, Nummer 3
|
||||||
Zimmermann, Mia, = Hof 2, Tisch 70, Nummer 4
|
Zimmermann, Mia, = Hof 1, Tisch 37, Nummer 2
|
||||||
Zimmermann, Patrick, = Hof 2, Tisch 62, Nummer 2
|
Zimmermann, Patrick, = Hof 2, Tisch 75, Nummer 2
|
||||||
Zimmermann, Svenja, = Hof 2, Tisch 70, Nummer 5
|
Zimmermann, Svenja, = Hof 1, Tisch 37, Nummer 4
|
||||||
|
|||||||
|
@@ -1,480 +1,568 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="2476.05" height="466.676" viewBox="0 0 2476.05 466.676">
|
<svg xmlns="http://www.w3.org/2000/svg" width="2476.05" height="466.676" viewBox="0 0 2476.05 466.676">
|
||||||
<rect width="100%" height="100%" fill="white"/>
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
<circle cx="690.014" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="142.003" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="690.014" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 8</text>
|
<circle cx="142.003" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="598.679" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="142.003" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">22</text>
|
||||||
<text x="598.679" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 27</text>
|
<circle cx="507.344" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="461.676" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="507.344" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="461.676" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 34</text>
|
<text x="507.344" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">26</text>
|
||||||
<circle cx="1603.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1740.37" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1603.37" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 47</text>
|
<circle cx="1740.37" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="2060.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="1740.37" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">77</text>
|
||||||
<text x="2060.04" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 87</text>
|
<circle cx="2105.71" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="416.009" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2105.71" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="416.009" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 41</text>
|
<text x="2105.71" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">81</text>
|
||||||
<circle cx="416.009" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1968.71" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="416.009" cy="434.676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1968.71" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="324.673" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="1968.71" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">86</text>
|
||||||
<text x="324.673" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 4</text>
|
<circle cx="370.341" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="324.673" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="370.341" cy="306.006" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="340.84" cy="60.0014" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="370.341" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="308.507" cy="60.0014" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="370.341" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="781.35" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="370.341" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">33</text>
|
||||||
<text x="781.35" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 9</text>
|
<circle cx="735.682" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="781.35" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="735.682" cy="306.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="797.516" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="735.682" cy="343.341" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="765.183" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="735.682" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="964.02" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="735.682" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">37</text>
|
||||||
<text x="964.02" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 11</text>
|
<circle cx="50.6676" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="964.02" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="50.6676" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="980.187" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="66.8343" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="947.853" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="34.501" cy="60.0014" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="50.6676" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="50.6676" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
|
||||||
|
<circle cx="233.338" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="233.338" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="249.505" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="217.171" cy="60.0014" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="233.338" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="233.338" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
|
||||||
<circle cx="187.67" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="187.67" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="187.67" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 13</text>
|
|
||||||
<circle cx="187.67" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="187.67" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="203.837" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="203.837" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="171.504" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="171.504" cy="151.337" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="918.352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="187.67" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="918.352" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 21</text>
|
<text x="187.67" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">13</text>
|
||||||
<circle cx="918.352" cy="123.335" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="370.341" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="934.519" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="370.341" cy="123.335" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="902.186" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="386.508" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="354.174" cy="151.337" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="370.341" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="370.341" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">15</text>
|
||||||
|
<circle cx="553.011" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="553.011" cy="123.335" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="569.178" cy="151.337" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="536.845" cy="151.337" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="553.011" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="553.011" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">17</text>
|
||||||
|
<circle cx="735.682" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="735.682" cy="123.335" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="751.849" cy="151.337" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="719.515" cy="151.337" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="735.682" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="735.682" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">19</text>
|
||||||
|
<circle cx="324.673" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="324.673" cy="214.67" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="340.84" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="308.507" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="324.673" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">24</text>
|
||||||
<circle cx="416.009" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="416.009" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="416.009" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 25</text>
|
<circle cx="416.009" cy="214.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="416.009" cy="214.67" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="432.175" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="432.175" cy="242.672" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="399.842" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="399.842" cy="242.672" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="416.009" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="507.344" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="416.009" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">25</text>
|
||||||
<text x="507.344" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 26</text>
|
<circle cx="279.006" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="507.344" cy="214.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="279.006" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="523.51" cy="242.672" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="295.172" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="491.177" cy="242.672" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="262.839" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="781.35" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="279.006" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="781.35" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 29</text>
|
<text x="279.006" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">32</text>
|
||||||
<circle cx="781.35" cy="214.67" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="2151.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="797.516" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="2151.38" cy="32" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="765.183" cy="242.672" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="2167.54" cy="60.0014" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="872.685" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2135.21" cy="60.0014" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<text x="872.685" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 30</text>
|
<circle cx="2151.38" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="872.685" cy="214.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<text x="2151.38" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">53</text>
|
||||||
<circle cx="888.851" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="1557.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="856.518" cy="242.672" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="1557.7" cy="123.335" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="370.341" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1573.87" cy="151.337" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<text x="370.341" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 33</text>
|
<circle cx="1541.53" cy="151.337" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="370.341" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="1557.7" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="386.508" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<text x="1557.7" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">57</text>
|
||||||
<circle cx="354.174" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="598.679" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="598.679" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 43</text>
|
|
||||||
<circle cx="598.679" cy="397.341" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="614.846" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="582.512" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1877.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="1877.37" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 50</text>
|
|
||||||
<circle cx="1877.37" cy="32" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1893.54" cy="60.0014" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1861.21" cy="60.0014" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1968.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="1968.71" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 51</text>
|
|
||||||
<circle cx="1968.71" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1984.87" cy="60.0014" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1952.54" cy="60.0014" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2060.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="2060.04" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 52</text>
|
|
||||||
<circle cx="2060.04" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2076.21" cy="60.0014" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2043.88" cy="60.0014" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1649.03" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1649.03" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1649.03" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 58</text>
|
<circle cx="1649.03" cy="123.335" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1649.03" cy="123.335" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="1665.2" cy="151.337" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1665.2" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="1632.87" cy="151.337" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1632.87" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="1649.03" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="2014.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="1649.03" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">58</text>
|
||||||
<text x="2014.38" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 62</text>
|
<circle cx="1740.37" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="2014.38" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1740.37" cy="123.335" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2030.54" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1756.54" cy="151.337" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1998.21" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1724.2" cy="151.337" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2105.71" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1740.37" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="2105.71" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 63</text>
|
<text x="1740.37" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">59</text>
|
||||||
<circle cx="2105.71" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="1831.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="2121.88" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="1831.7" cy="123.335" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2089.54" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="1847.87" cy="151.337" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1815.54" cy="151.337" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1831.7" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1831.7" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">60</text>
|
||||||
|
<circle cx="1923.04" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="1923.04" cy="123.335" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1939.21" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1906.87" cy="151.337" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1923.04" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1923.04" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">61</text>
|
||||||
<circle cx="2197.05" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2197.05" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2197.05" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 64</text>
|
<circle cx="2197.05" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2197.05" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="2213.21" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2213.21" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="2180.88" cy="151.337" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2180.88" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="2197.05" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2197.05" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">64</text>
|
||||||
<circle cx="2288.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2288.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2288.38" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 65</text>
|
<circle cx="2288.38" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2288.38" cy="123.335" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2304.55" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2304.55" cy="151.337" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2272.21" cy="151.337" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2272.21" cy="151.337" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2288.38" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="1694.7" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="2288.38" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">65</text>
|
||||||
<text x="1694.7" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 68</text>
|
<circle cx="2379.72" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="1694.7" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2379.72" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1710.87" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2395.88" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1678.54" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2363.55" cy="151.337" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2379.72" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2379.72" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">66</text>
|
||||||
<circle cx="1786.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1786.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1786.04" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 69</text>
|
<circle cx="1786.04" cy="214.67" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1786.04" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="1802.2" cy="242.672" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1802.2" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="1769.87" cy="242.672" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1769.87" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="1786.04" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1786.04" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">69</text>
|
||||||
<circle cx="1968.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1968.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1968.71" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 71</text>
|
<circle cx="1968.71" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1968.71" cy="214.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1984.87" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1984.87" cy="242.672" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1952.54" cy="242.672" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1952.54" cy="242.672" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="1968.71" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1968.71" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">71</text>
|
||||||
<circle cx="2060.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2060.04" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2060.04" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 72</text>
|
|
||||||
<circle cx="2060.04" cy="214.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="2060.04" cy="214.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2076.21" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="2076.21" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2043.88" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="2043.88" cy="242.672" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1740.37" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2060.04" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="1740.37" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 77</text>
|
<text x="2060.04" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">72</text>
|
||||||
<circle cx="1740.37" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1756.54" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1724.2" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1831.7" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1831.7" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1831.7" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 78</text>
|
<circle cx="1831.7" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1831.7" cy="306.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1847.87" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1847.87" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1815.54" cy="334.007" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1815.54" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1831.7" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1831.7" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">78</text>
|
||||||
<circle cx="2014.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2014.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2014.38" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 80</text>
|
<circle cx="2014.38" cy="306.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2014.38" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="2030.54" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2030.54" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1998.21" cy="334.007" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1998.21" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="2014.38" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="2105.71" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="2014.38" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">80</text>
|
||||||
<text x="2105.71" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 81</text>
|
|
||||||
<circle cx="2105.71" cy="306.006" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2121.88" cy="334.007" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2089.54" cy="334.007" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2197.05" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2197.05" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2197.05" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 82</text>
|
<circle cx="2197.05" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2197.05" cy="306.006" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2213.21" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2213.21" cy="334.007" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2180.88" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2180.88" cy="334.007" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2197.05" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="1877.37" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="2197.05" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">82</text>
|
||||||
<text x="1877.37" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 85</text>
|
<circle cx="2288.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="1877.37" cy="397.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2288.38" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1893.54" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2304.55" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1861.21" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2272.21" cy="334.007" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2288.38" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2288.38" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">83</text>
|
||||||
|
<circle cx="1786.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="1786.04" cy="397.341" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1802.2" cy="425.342" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1769.87" cy="425.342" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1786.04" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1786.04" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">84</text>
|
||||||
|
<circle cx="2060.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="2060.04" cy="397.341" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2076.21" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2043.88" cy="425.342" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2060.04" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2060.04" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">87</text>
|
||||||
<circle cx="2151.38" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2151.38" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2151.38" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 88</text>
|
<circle cx="2151.38" cy="397.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2151.38" cy="397.341" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2167.54" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2167.54" cy="425.342" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2135.21" cy="425.342" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2135.21" cy="425.342" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2151.38" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="50.6676" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="2151.38" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">88</text>
|
||||||
<text x="50.6676" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 1</text>
|
|
||||||
<circle cx="50.6676" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="69.3352" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="50.6676" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="32" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="142.003" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="142.003" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="142.003" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 2</text>
|
<circle cx="142.003" cy="32" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="142.003" cy="32" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="160.67" cy="50.6676" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="160.67" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="142.003" cy="69.3352" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="142.003" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="123.335" cy="50.6676" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="123.335" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="142.003" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="233.338" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="142.003" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
|
||||||
<text x="233.338" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 3</text>
|
<circle cx="324.673" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="233.338" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="324.673" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="252.006" cy="50.6676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="343.341" cy="50.6676" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="233.338" cy="69.3352" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="324.673" cy="69.3352" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="214.67" cy="50.6676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="306.006" cy="50.6676" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="324.673" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="324.673" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
|
||||||
<circle cx="416.009" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="416.009" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="416.009" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 5</text>
|
|
||||||
<circle cx="416.009" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="416.009" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="434.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="434.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="416.009" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="416.009" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="397.341" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="397.341" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="416.009" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">5</text>
|
||||||
<circle cx="507.344" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="507.344" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="507.344" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 6</text>
|
|
||||||
<circle cx="507.344" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="507.344" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="526.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="526.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="507.344" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="507.344" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="488.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="488.676" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="507.344" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="507.344" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">6</text>
|
||||||
<circle cx="598.679" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="598.679" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="598.679" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 7</text>
|
|
||||||
<circle cx="598.679" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="598.679" cy="32" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="617.347" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="617.347" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="598.679" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="598.679" cy="69.3352" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="580.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
<circle cx="580.011" cy="50.6676" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="598.679" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">7</text>
|
||||||
|
<circle cx="690.014" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="690.014" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="708.682" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="69.3352" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="671.347" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="690.014" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="690.014" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">8</text>
|
||||||
|
<circle cx="781.35" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="781.35" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="800.017" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="762.682" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="781.35" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">9</text>
|
||||||
<circle cx="872.685" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="872.685" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="872.685" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 10</text>
|
<circle cx="872.685" cy="32" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="872.685" cy="32" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="891.352" cy="50.6676" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="891.352" cy="50.6676" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="872.685" cy="69.3352" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="872.685" cy="69.3352" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="854.017" cy="50.6676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="854.017" cy="50.6676" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="872.685" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="872.685" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">10</text>
|
||||||
|
<circle cx="964.02" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="964.02" cy="32" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="982.688" cy="50.6676" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="964.02" cy="69.3352" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="945.352" cy="50.6676" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="964.02" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="964.02" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">11</text>
|
||||||
<circle cx="96.3352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="96.3352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="96.3352" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 12</text>
|
<circle cx="96.3352" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="96.3352" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="115.003" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="115.003" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="96.3352" cy="160.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="96.3352" cy="160.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="77.6676" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="77.6676" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="96.3352" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="96.3352" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">12</text>
|
||||||
<circle cx="279.006" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="279.006" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="279.006" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 14</text>
|
<circle cx="279.006" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="279.006" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="297.673" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="297.673" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="279.006" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="279.006" cy="160.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="260.338" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="260.338" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="279.006" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="370.341" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="279.006" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">14</text>
|
||||||
<text x="370.341" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 15</text>
|
|
||||||
<circle cx="370.341" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="389.009" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="370.341" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="351.673" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="461.676" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="461.676" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="461.676" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 16</text>
|
<circle cx="461.676" cy="123.335" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="461.676" cy="123.335" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="480.344" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="480.344" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="461.676" cy="160.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="461.676" cy="160.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="443.009" cy="142.003" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="443.009" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="461.676" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="553.011" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="461.676" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">16</text>
|
||||||
<text x="553.011" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 17</text>
|
|
||||||
<circle cx="553.011" cy="123.335" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="571.679" cy="142.003" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="553.011" cy="160.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="534.344" cy="142.003" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="644.347" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="644.347" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="644.347" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 18</text>
|
<circle cx="644.347" cy="123.335" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="644.347" cy="123.335" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="663.014" cy="142.003" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="663.014" cy="142.003" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="644.347" cy="160.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="644.347" cy="160.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="625.679" cy="142.003" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="625.679" cy="142.003" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="735.682" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="644.347" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="735.682" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 19</text>
|
<text x="644.347" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">18</text>
|
||||||
<circle cx="735.682" cy="123.335" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="754.35" cy="142.003" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="735.682" cy="160.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="717.014" cy="142.003" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="827.017" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="827.017" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="827.017" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 20</text>
|
<circle cx="827.017" cy="123.335" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="827.017" cy="123.335" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="845.685" cy="142.003" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="845.685" cy="142.003" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="827.017" cy="160.67" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="827.017" cy="160.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="808.35" cy="142.003" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="808.35" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="827.017" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="142.003" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="827.017" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">20</text>
|
||||||
<text x="142.003" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 22</text>
|
<circle cx="918.352" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="142.003" cy="214.67" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="918.352" cy="123.335" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="160.67" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="937.02" cy="142.003" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="142.003" cy="252.006" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="918.352" cy="160.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="123.335" cy="233.338" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="899.685" cy="142.003" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="918.352" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="918.352" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">21</text>
|
||||||
<circle cx="233.338" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="233.338" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="233.338" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 23</text>
|
<circle cx="233.338" cy="214.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="233.338" cy="214.67" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="252.006" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="252.006" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="233.338" cy="252.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="233.338" cy="252.006" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="214.67" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="214.67" cy="233.338" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="233.338" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="324.673" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="233.338" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">23</text>
|
||||||
<text x="324.673" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 24</text>
|
<circle cx="598.679" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="324.673" cy="214.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="598.679" cy="214.67" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="343.341" cy="233.338" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="617.347" cy="233.338" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="324.673" cy="252.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="598.679" cy="252.006" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="306.006" cy="233.338" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="580.011" cy="233.338" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="598.679" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">27</text>
|
||||||
<circle cx="690.014" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="690.014" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="690.014" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 28</text>
|
<circle cx="690.014" cy="214.67" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="690.014" cy="214.67" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="708.682" cy="233.338" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="708.682" cy="233.338" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="690.014" cy="252.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="690.014" cy="252.006" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="671.347" cy="233.338" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="671.347" cy="233.338" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="690.014" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="690.014" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">28</text>
|
||||||
|
<circle cx="781.35" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="781.35" cy="214.67" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="800.017" cy="233.338" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="252.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="762.682" cy="233.338" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="781.35" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="781.35" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">29</text>
|
||||||
|
<circle cx="872.685" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="872.685" cy="214.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="891.352" cy="233.338" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.685" cy="252.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="854.017" cy="233.338" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="872.685" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="872.685" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">30</text>
|
||||||
<circle cx="187.67" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="187.67" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="187.67" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 31</text>
|
<circle cx="187.67" cy="306.006" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="187.67" cy="306.006" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="206.338" cy="324.673" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="206.338" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="187.67" cy="343.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="187.67" cy="343.341" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="169.003" cy="324.673" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="169.003" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="187.67" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="279.006" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="187.67" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">31</text>
|
||||||
<text x="279.006" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 32</text>
|
<circle cx="461.676" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="279.006" cy="306.006" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="461.676" cy="306.006" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="297.673" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="480.344" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="279.006" cy="343.341" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="461.676" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="260.338" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="443.009" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="461.676" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="461.676" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">34</text>
|
||||||
<circle cx="553.011" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="553.011" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="553.011" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 35</text>
|
<circle cx="553.011" cy="306.006" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="553.011" cy="306.006" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="571.679" cy="324.673" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="571.679" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="553.011" cy="343.341" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="553.011" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="534.344" cy="324.673" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="534.344" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="553.011" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="553.011" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">35</text>
|
||||||
<circle cx="644.347" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="644.347" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="644.347" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 36</text>
|
<circle cx="644.347" cy="306.006" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="644.347" cy="306.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="663.014" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="663.014" cy="324.673" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="644.347" cy="343.341" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="644.347" cy="343.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="625.679" cy="324.673" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="625.679" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
<circle cx="644.347" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="735.682" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="644.347" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">36</text>
|
||||||
<text x="735.682" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 37</text>
|
|
||||||
<circle cx="735.682" cy="306.006" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="754.35" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="735.682" cy="343.341" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="717.014" cy="324.673" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="827.017" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="827.017" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="827.017" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 38</text>
|
<circle cx="827.017" cy="306.006" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="827.017" cy="306.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="845.685" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="845.685" cy="324.673" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="827.017" cy="343.341" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="827.017" cy="343.341" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="808.35" cy="324.673" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="808.35" cy="324.673" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="827.017" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="827.017" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">38</text>
|
||||||
<circle cx="233.338" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="233.338" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="233.338" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 39</text>
|
<circle cx="233.338" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="233.338" cy="397.341" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="252.006" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="252.006" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="233.338" cy="434.676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="233.338" cy="434.676" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="214.67" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="214.67" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="233.338" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="233.338" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">39</text>
|
||||||
<circle cx="324.673" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="324.673" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="324.673" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 40</text>
|
<circle cx="324.673" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="324.673" cy="397.341" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="343.341" cy="416.009" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="343.341" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="324.673" cy="434.676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="324.673" cy="434.676" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="306.006" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="306.006" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="324.673" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="324.673" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">40</text>
|
||||||
|
<circle cx="416.009" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="416.009" cy="397.341" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="434.676" cy="416.009" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="434.676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="397.341" cy="416.009" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="416.009" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="416.009" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">41</text>
|
||||||
<circle cx="507.344" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="507.344" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="507.344" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 42</text>
|
<circle cx="507.344" cy="397.341" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="507.344" cy="397.341" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="526.011" cy="416.009" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="526.011" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="507.344" cy="434.676" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="507.344" cy="434.676" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="488.676" cy="416.009" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="488.676" cy="416.009" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
<circle cx="507.344" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="507.344" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">42</text>
|
||||||
|
<circle cx="598.679" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="598.679" cy="397.341" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="617.347" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="434.676" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="580.011" cy="416.009" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="598.679" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="598.679" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">43</text>
|
||||||
<circle cx="690.014" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="690.014" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="690.014" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 44</text>
|
<circle cx="690.014" cy="397.341" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="690.014" cy="397.341" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="708.682" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="708.682" cy="416.009" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="690.014" cy="434.676" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="690.014" cy="434.676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="671.347" cy="416.009" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="671.347" cy="416.009" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="690.014" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="690.014" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">44</text>
|
||||||
<circle cx="781.35" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="781.35" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="781.35" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 45</text>
|
<circle cx="781.35" cy="397.341" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="781.35" cy="397.341" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="800.017" cy="416.009" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="800.017" cy="416.009" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="781.35" cy="434.676" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="781.35" cy="434.676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="762.682" cy="416.009" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="762.682" cy="416.009" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="781.35" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="781.35" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">45</text>
|
||||||
<circle cx="1512.03" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1512.03" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1512.03" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 46</text>
|
<circle cx="1512.03" cy="32" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1512.03" cy="32" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1530.7" cy="50.6676" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1530.7" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1512.03" cy="69.3352" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1512.03" cy="69.3352" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1493.36" cy="50.6676" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1493.36" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1512.03" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1512.03" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">46</text>
|
||||||
|
<circle cx="1603.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="1603.37" cy="32" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1622.03" cy="50.6676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1603.37" cy="69.3352" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1584.7" cy="50.6676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1603.37" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1603.37" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">47</text>
|
||||||
<circle cx="1694.7" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1694.7" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1694.7" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 48</text>
|
<circle cx="1694.7" cy="32" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1694.7" cy="32" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1713.37" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1713.37" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1694.7" cy="69.3352" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1694.7" cy="69.3352" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1676.03" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1676.03" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1694.7" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">48</text>
|
||||||
<circle cx="1786.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1786.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1786.04" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 49</text>
|
<circle cx="1786.04" cy="32" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1786.04" cy="32" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="1804.7" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1804.7" cy="50.6676" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="1786.04" cy="69.3352" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1786.04" cy="69.3352" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1767.37" cy="50.6676" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1767.37" cy="50.6676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
<circle cx="1786.04" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="2151.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="1786.04" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">49</text>
|
||||||
<text x="2151.38" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 53</text>
|
<circle cx="1877.37" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="2151.38" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="32" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2170.05" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="1896.04" cy="50.6676" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2151.38" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="69.3352" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2132.71" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1858.7" cy="50.6676" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1877.37" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1877.37" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">50</text>
|
||||||
|
<circle cx="1968.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="1968.71" cy="32" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1987.38" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="69.3352" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1950.04" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1968.71" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1968.71" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">51</text>
|
||||||
|
<circle cx="2060.04" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="2060.04" cy="32" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2078.71" cy="50.6676" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2060.04" cy="69.3352" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2041.38" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2060.04" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2060.04" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">52</text>
|
||||||
<circle cx="2242.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2242.71" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2242.71" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 54</text>
|
<circle cx="2242.71" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2242.71" cy="32" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2261.38" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2261.38" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2242.71" cy="69.3352" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2242.71" cy="69.3352" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2224.05" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2224.05" cy="50.6676" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
<circle cx="2242.71" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2242.71" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">54</text>
|
||||||
<circle cx="2334.05" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2334.05" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2334.05" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 55</text>
|
<circle cx="2334.05" cy="32" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2334.05" cy="32" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2352.72" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2352.72" cy="50.6676" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2334.05" cy="69.3352" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2334.05" cy="69.3352" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2315.38" cy="50.6676" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2315.38" cy="50.6676" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
<circle cx="2334.05" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2334.05" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">55</text>
|
||||||
<circle cx="2425.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2425.38" cy="50.6676" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2425.38" y="8" text-anchor="middle" font-size="10" fill="black">Tisch 56</text>
|
<circle cx="2425.38" cy="32" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2425.38" cy="32" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2444.05" cy="50.6676" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2444.05" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2425.38" cy="69.3352" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2425.38" cy="69.3352" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2406.72" cy="50.6676" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2406.72" cy="50.6676" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
<circle cx="2425.38" cy="50.6676" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="1557.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="2425.38" y="50.6676" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">56</text>
|
||||||
<text x="1557.7" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 57</text>
|
<circle cx="2014.38" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="1557.7" cy="123.335" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="2014.38" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1576.37" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="2033.04" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1557.7" cy="160.67" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="2014.38" cy="160.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1539.03" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<circle cx="1995.71" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1740.37" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2014.38" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="1740.37" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 59</text>
|
<text x="2014.38" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">62</text>
|
||||||
<circle cx="1740.37" cy="123.335" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="2105.71" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="1759.04" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="2105.71" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1740.37" cy="160.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="2124.38" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1721.7" cy="142.003" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="2105.71" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1831.7" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2087.04" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
<text x="1831.7" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 60</text>
|
<circle cx="2105.71" cy="142.003" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="1831.7" cy="123.335" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
<text x="2105.71" y="142.003" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">63</text>
|
||||||
<circle cx="1850.37" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1831.7" cy="160.67" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1813.04" cy="142.003" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1923.04" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="1923.04" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 61</text>
|
|
||||||
<circle cx="1923.04" cy="123.335" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1941.71" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1923.04" cy="160.67" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1904.37" cy="142.003" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2379.72" cy="142.003" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="2379.72" y="99.3352" text-anchor="middle" font-size="10" fill="black">Tisch 66</text>
|
|
||||||
<circle cx="2379.72" cy="123.335" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2398.38" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2379.72" cy="160.67" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2361.05" cy="142.003" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1603.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1603.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1603.37" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 67</text>
|
<circle cx="1603.37" cy="214.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1603.37" cy="214.67" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1622.03" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1622.03" cy="233.338" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1603.37" cy="252.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1603.37" cy="252.006" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1584.7" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1584.7" cy="233.338" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
<circle cx="1603.37" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1603.37" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">67</text>
|
||||||
|
<circle cx="1694.7" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="1694.7" cy="214.67" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1713.37" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="252.006" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1676.03" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="1694.7" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1694.7" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">68</text>
|
||||||
<circle cx="1877.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1877.37" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1877.37" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 70</text>
|
<circle cx="1877.37" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1877.37" cy="214.67" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="1896.04" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1896.04" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="252.006" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1877.37" cy="252.006" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="1858.7" cy="233.338" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1858.7" cy="233.338" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1877.37" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">70</text>
|
||||||
<circle cx="2151.38" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2151.38" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2151.38" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 73</text>
|
<circle cx="2151.38" cy="214.67" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2151.38" cy="214.67" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
<circle cx="2170.05" cy="233.338" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2170.05" cy="233.338" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="2151.38" cy="252.006" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="2151.38" cy="252.006" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2132.71" cy="233.338" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="2132.71" cy="233.338" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="2151.38" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2151.38" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">73</text>
|
||||||
<circle cx="2242.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2242.71" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2242.71" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 74</text>
|
<circle cx="2242.71" cy="214.67" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2242.71" cy="214.67" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2261.38" cy="233.338" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2261.38" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2242.71" cy="252.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2242.71" cy="252.006" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2224.05" cy="233.338" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2224.05" cy="233.338" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
<circle cx="2242.71" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2242.71" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">74</text>
|
||||||
<circle cx="2334.05" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="2334.05" cy="233.338" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="2334.05" y="190.67" text-anchor="middle" font-size="10" fill="black">Tisch 75</text>
|
<circle cx="2334.05" cy="214.67" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2334.05" cy="214.67" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2352.72" cy="233.338" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2352.72" cy="233.338" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2334.05" cy="252.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2334.05" cy="252.006" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2315.38" cy="233.338" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2315.38" cy="233.338" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
<circle cx="2334.05" cy="233.338" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="2334.05" y="233.338" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">75</text>
|
||||||
<circle cx="1649.03" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1649.03" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1649.03" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 76</text>
|
<circle cx="1649.03" cy="306.006" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1649.03" cy="306.006" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="1667.7" cy="324.673" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1667.7" cy="324.673" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="1649.03" cy="343.341" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1649.03" cy="343.341" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="1630.37" cy="324.673" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1630.37" cy="324.673" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
<circle cx="1649.03" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="1649.03" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">76</text>
|
||||||
<circle cx="1923.04" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1923.04" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<text x="1923.04" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 79</text>
|
<circle cx="1923.04" cy="306.006" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1923.04" cy="306.006" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="1941.71" cy="324.673" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1941.71" cy="324.673" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="1923.04" cy="343.341" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1923.04" cy="343.341" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="1904.37" cy="324.673" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1904.37" cy="324.673" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
<circle cx="1923.04" cy="324.673" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<circle cx="2288.38" cy="324.673" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<text x="1923.04" y="324.673" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">79</text>
|
||||||
<text x="2288.38" y="282.006" text-anchor="middle" font-size="10" fill="black">Tisch 83</text>
|
<circle cx="1877.37" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
<circle cx="2288.38" cy="306.006" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="397.341" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2307.05" cy="324.673" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1896.04" cy="416.009" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2288.38" cy="343.341" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1877.37" cy="434.676" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="2269.71" cy="324.673" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
<circle cx="1858.7" cy="416.009" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
||||||
<circle cx="1786.04" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
<circle cx="1877.37" cy="416.009" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
<text x="1786.04" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 84</text>
|
<text x="1877.37" y="416.009" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">85</text>
|
||||||
<circle cx="1786.04" cy="397.341" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1804.7" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1786.04" cy="434.676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1767.37" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1968.71" cy="416.009" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
|
||||||
<text x="1968.71" y="373.341" text-anchor="middle" font-size="10" fill="black">Tisch 86</text>
|
|
||||||
<circle cx="1968.71" cy="397.341" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1987.38" cy="416.009" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1968.71" cy="434.676" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
<circle cx="1950.04" cy="416.009" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 53 KiB |
@@ -1,476 +1,476 @@
|
|||||||
[1]
|
[1]
|
||||||
Dr. Patrick Kaya = Hof 1, Tisch 1, Nummer 1
|
Olga Hansen = Hof 1, Tisch 1, Nummer 1
|
||||||
Dr. Christina Krause = Hof 1, Tisch 1, Nummer 2
|
Giovanna Hansen = Hof 1, Tisch 1, Nummer 2
|
||||||
Dr. Jan Bianchi = Hof 1, Tisch 1, Nummer 3
|
Markus Hansen = Hof 1, Tisch 1, Nummer 3
|
||||||
Marco Winkler = Hof 1, Tisch 1, Nummer 4
|
|
||||||
|
|
||||||
[2]
|
[2]
|
||||||
Julia Weber = Hof 1, Tisch 2, Nummer 1
|
Anja Richter = Hof 1, Tisch 2, Nummer 1
|
||||||
Yusuf Bauer = Hof 1, Tisch 2, Nummer 2
|
Matthias Richter = Hof 1, Tisch 2, Nummer 2
|
||||||
Emre Klein = Hof 1, Tisch 2, Nummer 3
|
Greta Richter = Hof 1, Tisch 2, Nummer 3
|
||||||
Prof. Dr. Yusuf Seidel = Hof 1, Tisch 2, Nummer 4
|
Anton Richter = Hof 1, Tisch 2, Nummer 4
|
||||||
|
|
||||||
[3]
|
[3]
|
||||||
Dr. Markus Seidel = Hof 1, Tisch 3, Nummer 1
|
Prof. Dr. Yusuf Seidel = Hof 1, Tisch 3, Nummer 1
|
||||||
Giovanna Petrov = Hof 1, Tisch 3, Nummer 2
|
Emre Klein = Hof 1, Tisch 3, Nummer 2
|
||||||
Christian Peters = Hof 1, Tisch 3, Nummer 3
|
Dr. Patrick Kaya = Hof 1, Tisch 3, Nummer 3
|
||||||
Markus Kraus = Hof 1, Tisch 3, Nummer 4
|
Yusuf Bauer = Hof 1, Tisch 3, Nummer 4
|
||||||
|
|
||||||
[4]
|
[4]
|
||||||
Prof. Dr. Kathrin Petrov = Hof 1, Tisch 4, Nummer 1
|
Dr. Jan Bianchi = Hof 1, Tisch 4, Nummer 1
|
||||||
Markus Schmitt = Hof 1, Tisch 4, Nummer 2
|
Marco Winkler = Hof 1, Tisch 4, Nummer 2
|
||||||
Dr. Nadine Stein = Hof 1, Tisch 4, Nummer 3
|
Dr. Christina Krause = Hof 1, Tisch 4, Nummer 3
|
||||||
|
|
||||||
[5]
|
[5]
|
||||||
Beate Grothe = Hof 1, Tisch 5, Nummer 1
|
Dr. Ferdinand Kessler = Hof 1, Tisch 5, Nummer 1
|
||||||
Viktoria Kessler = Hof 1, Tisch 5, Nummer 2
|
Dr. h.c. Alexander Grothe = Hof 1, Tisch 5, Nummer 2
|
||||||
Dr. Ferdinand Kessler = Hof 1, Tisch 5, Nummer 3
|
Viktoria Kessler = Hof 1, Tisch 5, Nummer 3
|
||||||
Dr. h.c. Alexander Grothe = Hof 1, Tisch 5, Nummer 4
|
Beate Grothe = Hof 1, Tisch 5, Nummer 4
|
||||||
|
|
||||||
[6]
|
[6]
|
||||||
Dr. Konstantin Freiherr von Waldeck = Hof 1, Tisch 6, Nummer 1
|
Georg Steinbach = Hof 1, Tisch 6, Nummer 1
|
||||||
Elisabeth Steinbach = Hof 1, Tisch 6, Nummer 2
|
Antonia Freifrau von Waldeck = Hof 1, Tisch 6, Nummer 2
|
||||||
Antonia Freifrau von Waldeck = Hof 1, Tisch 6, Nummer 3
|
Dr. Konstantin Freiherr von Waldeck = Hof 1, Tisch 6, Nummer 3
|
||||||
Georg Steinbach = Hof 1, Tisch 6, Nummer 4
|
Elisabeth Steinbach = Hof 1, Tisch 6, Nummer 4
|
||||||
|
|
||||||
[7]
|
[7]
|
||||||
Maximilian Dallmann = Hof 1, Tisch 7, Nummer 1
|
Charlotte Dallmann = Hof 1, Tisch 7, Nummer 1
|
||||||
Margarete Dallmann = Hof 1, Tisch 7, Nummer 2
|
Maximilian Dallmann = Hof 1, Tisch 7, Nummer 2
|
||||||
Heinrich Dallmann = Hof 1, Tisch 7, Nummer 3
|
Heinrich Dallmann = Hof 1, Tisch 7, Nummer 3
|
||||||
Charlotte Dallmann = Hof 1, Tisch 7, Nummer 4
|
Margarete Dallmann = Hof 1, Tisch 7, Nummer 4
|
||||||
|
|
||||||
[8]
|
[8]
|
||||||
|
Milan Lehmann = Hof 1, Tisch 8, Nummer 1
|
||||||
|
Layla Lehmann = Hof 1, Tisch 8, Nummer 2
|
||||||
|
Nicole Lehmann = Hof 1, Tisch 8, Nummer 3
|
||||||
|
Giovanna Lehmann = Hof 1, Tisch 8, Nummer 4
|
||||||
|
|
||||||
[9]
|
[9]
|
||||||
Nadine Frank = Hof 1, Tisch 9, Nummer 1
|
Markus Lehmann = Hof 1, Tisch 9, Nummer 1
|
||||||
Lena Frank = Hof 1, Tisch 9, Nummer 2
|
Thomas Lehmann = Hof 1, Tisch 9, Nummer 2
|
||||||
Finn Frank = Hof 1, Tisch 9, Nummer 3
|
|
||||||
|
|
||||||
[10]
|
[10]
|
||||||
Yusuf Engel = Hof 1, Tisch 10, Nummer 1
|
Markus Kraus = Hof 1, Tisch 10, Nummer 1
|
||||||
Marie Frank = Hof 1, Tisch 10, Nummer 2
|
Dr. Markus Seidel = Hof 1, Tisch 10, Nummer 2
|
||||||
Anja Engel = Hof 1, Tisch 10, Nummer 3
|
Christian Peters = Hof 1, Tisch 10, Nummer 3
|
||||||
Dennis Frank = Hof 1, Tisch 10, Nummer 4
|
Giovanna Petrov = Hof 1, Tisch 10, Nummer 4
|
||||||
|
|
||||||
[11]
|
[11]
|
||||||
Julia Engel = Hof 1, Tisch 11, Nummer 1
|
Dr. Nadine Stein = Hof 1, Tisch 11, Nummer 1
|
||||||
Nicole Engel = Hof 1, Tisch 11, Nummer 2
|
Julia Weber = Hof 1, Tisch 11, Nummer 2
|
||||||
Anton Engel = Hof 1, Tisch 11, Nummer 3
|
Markus Schmitt = Hof 1, Tisch 11, Nummer 3
|
||||||
|
Prof. Dr. Kathrin Petrov = Hof 1, Tisch 11, Nummer 4
|
||||||
|
|
||||||
[12]
|
[12]
|
||||||
Thomas Winkler = Hof 1, Tisch 12, Nummer 1
|
Hannah Ott = Hof 1, Tisch 12, Nummer 1
|
||||||
Dr. Jan Esposito = Hof 1, Tisch 12, Nummer 2
|
Matthias Ott = Hof 1, Tisch 12, Nummer 2
|
||||||
Nicole Schmidt = Hof 1, Tisch 12, Nummer 3
|
Olga Ott = Hof 1, Tisch 12, Nummer 3
|
||||||
Thomas Hansen = Hof 1, Tisch 12, Nummer 4
|
|
||||||
|
|
||||||
[13]
|
[13]
|
||||||
Dr. Stefanie Seifert = Hof 1, Tisch 13, Nummer 1
|
Deniz Hartmann = Hof 1, Tisch 13, Nummer 1
|
||||||
Prof. Dr. Julia Roth = Hof 1, Tisch 13, Nummer 2
|
Nadine Hartmann = Hof 1, Tisch 13, Nummer 2
|
||||||
Julia Nguyen = Hof 1, Tisch 13, Nummer 3
|
Daniel Ott = Hof 1, Tisch 13, Nummer 3
|
||||||
|
Melanie Ott = Hof 1, Tisch 13, Nummer 4
|
||||||
|
|
||||||
[14]
|
[14]
|
||||||
Sergej Aksoy = Hof 1, Tisch 14, Nummer 1
|
|
||||||
Luca Aksoy = Hof 1, Tisch 14, Nummer 2
|
|
||||||
Nadine Aksoy = Hof 1, Tisch 14, Nummer 3
|
|
||||||
Sofia Aksoy = Hof 1, Tisch 14, Nummer 4
|
|
||||||
|
|
||||||
[15]
|
[15]
|
||||||
Henry Kovac = Hof 1, Tisch 15, Nummer 1
|
Dr. Stefanie Seifert = Hof 1, Tisch 15, Nummer 1
|
||||||
Anja Kovac = Hof 1, Tisch 15, Nummer 2
|
Julia Nguyen = Hof 1, Tisch 15, Nummer 2
|
||||||
Lena Kovac = Hof 1, Tisch 15, Nummer 3
|
Prof. Dr. Julia Roth = Hof 1, Tisch 15, Nummer 3
|
||||||
Marco Kovac = Hof 1, Tisch 15, Nummer 4
|
Thomas Winkler = Hof 1, Tisch 15, Nummer 4
|
||||||
|
|
||||||
[16]
|
[16]
|
||||||
Giovanna Lehmann = Hof 1, Tisch 16, Nummer 1
|
Dr. Jan Esposito = Hof 1, Tisch 16, Nummer 1
|
||||||
Milan Lehmann = Hof 1, Tisch 16, Nummer 2
|
Thomas Hansen = Hof 1, Tisch 16, Nummer 2
|
||||||
Markus Lehmann = Hof 1, Tisch 16, Nummer 3
|
Nicole Schmidt = Hof 1, Tisch 16, Nummer 3
|
||||||
Layla Lehmann = Hof 1, Tisch 16, Nummer 4
|
|
||||||
|
|
||||||
[17]
|
[17]
|
||||||
Sarah Albrecht = Hof 1, Tisch 17, Nummer 1
|
Layla Berger = Hof 1, Tisch 17, Nummer 1
|
||||||
Nicole Lehmann = Hof 1, Tisch 17, Nummer 2
|
Svenja Berger = Hof 1, Tisch 17, Nummer 2
|
||||||
Thomas Lehmann = Hof 1, Tisch 17, Nummer 3
|
Stefan Berger = Hof 1, Tisch 17, Nummer 3
|
||||||
Andreas Albrecht = Hof 1, Tisch 17, Nummer 4
|
|
||||||
|
|
||||||
[18]
|
[18]
|
||||||
Svenja Simon = Hof 1, Tisch 18, Nummer 1
|
Andreas Berger = Hof 1, Tisch 18, Nummer 1
|
||||||
Prof. Dr. Yusuf Albrecht = Hof 1, Tisch 18, Nummer 2
|
Jennifer Berger = Hof 1, Tisch 18, Nummer 2
|
||||||
Prof. Dr. Markus Stein = Hof 1, Tisch 18, Nummer 3
|
Anton Berger = Hof 1, Tisch 18, Nummer 3
|
||||||
Matthias Popescu = Hof 1, Tisch 18, Nummer 4
|
|
||||||
|
|
||||||
[19]
|
[19]
|
||||||
Dr. Sandra Demir = Hof 1, Tisch 19, Nummer 1
|
Nadine Werner = Hof 1, Tisch 19, Nummer 1
|
||||||
Prof. Dr. Timo Kaya = Hof 1, Tisch 19, Nummer 2
|
Andreas Werner = Hof 1, Tisch 19, Nummer 2
|
||||||
Patrick Celik = Hof 1, Tisch 19, Nummer 3
|
Marco Werner = Hof 1, Tisch 19, Nummer 3
|
||||||
Elif Celik = Hof 1, Tisch 19, Nummer 4
|
Sandra Werner = Hof 1, Tisch 19, Nummer 4
|
||||||
|
|
||||||
[20]
|
[20]
|
||||||
Lena Winkler = Hof 1, Tisch 20, Nummer 1
|
Sarah Albrecht = Hof 1, Tisch 20, Nummer 1
|
||||||
Patrick Winkler = Hof 1, Tisch 20, Nummer 2
|
Leni Arnold = Hof 1, Tisch 20, Nummer 2
|
||||||
Kathrin Petrov = Hof 1, Tisch 20, Nummer 3
|
Andreas Albrecht = Hof 1, Tisch 20, Nummer 3
|
||||||
Milan Petrov = Hof 1, Tisch 20, Nummer 4
|
Patrick Arnold = Hof 1, Tisch 20, Nummer 4
|
||||||
|
|
||||||
[21]
|
[21]
|
||||||
Mia Bianchi = Hof 1, Tisch 21, Nummer 1
|
Dr. Anja Seidel = Hof 1, Tisch 21, Nummer 1
|
||||||
Sandra Bianchi = Hof 1, Tisch 21, Nummer 2
|
Prof. Dr. Dennis Werner = Hof 1, Tisch 21, Nummer 2
|
||||||
Thomas Bianchi = Hof 1, Tisch 21, Nummer 3
|
Dr. Thomas Hoffmann = Hof 1, Tisch 21, Nummer 3
|
||||||
|
Olga Tran = Hof 1, Tisch 21, Nummer 4
|
||||||
|
|
||||||
[22]
|
[22]
|
||||||
Sofia Schmitt = Hof 1, Tisch 22, Nummer 1
|
Michael Busch = Hof 1, Tisch 22, Nummer 1
|
||||||
Nicole Seifert = Hof 1, Tisch 22, Nummer 2
|
Olga Busch = Hof 1, Tisch 22, Nummer 2
|
||||||
Sarah Schmitt = Hof 1, Tisch 22, Nummer 3
|
Emre Busch = Hof 1, Tisch 22, Nummer 3
|
||||||
Markus Schmitt = Hof 1, Tisch 22, Nummer 4
|
Marie Busch = Hof 1, Tisch 22, Nummer 4
|
||||||
|
|
||||||
[23]
|
[23]
|
||||||
Yusuf Seifert = Hof 1, Tisch 23, Nummer 1
|
Olga Hartmann = Hof 1, Tisch 23, Nummer 1
|
||||||
Leni Seifert = Hof 1, Tisch 23, Nummer 2
|
Thomas Hartmann = Hof 1, Tisch 23, Nummer 2
|
||||||
Elif Seifert = Hof 1, Tisch 23, Nummer 3
|
Marija Hartmann = Hof 1, Tisch 23, Nummer 3
|
||||||
Timo Seifert = Hof 1, Tisch 23, Nummer 4
|
|
||||||
|
|
||||||
[24]
|
[24]
|
||||||
Thomas Aksoy = Hof 1, Tisch 24, Nummer 1
|
Markus Klein = Hof 1, Tisch 24, Nummer 1
|
||||||
Tobias Kovac = Hof 1, Tisch 24, Nummer 2
|
Prof. Dr. Emre Ludwig = Hof 1, Tisch 24, Nummer 2
|
||||||
Marija Kovac = Hof 1, Tisch 24, Nummer 3
|
Daniel Krause = Hof 1, Tisch 24, Nummer 3
|
||||||
Marie Aksoy = Hof 1, Tisch 24, Nummer 4
|
Nicole Aksoy = Hof 1, Tisch 24, Nummer 4
|
||||||
|
|
||||||
[25]
|
[25]
|
||||||
Anton Berger = Hof 1, Tisch 25, Nummer 1
|
Lena Frank = Hof 1, Tisch 25, Nummer 1
|
||||||
Jennifer Berger = Hof 1, Tisch 25, Nummer 2
|
Finn Frank = Hof 1, Tisch 25, Nummer 2
|
||||||
Layla Berger = Hof 1, Tisch 25, Nummer 3
|
Sarah Koch = Hof 1, Tisch 25, Nummer 3
|
||||||
|
Michael Koch = Hof 1, Tisch 25, Nummer 4
|
||||||
|
|
||||||
[26]
|
[26]
|
||||||
Marija Becker = Hof 1, Tisch 26, Nummer 1
|
Marie Frank = Hof 1, Tisch 26, Nummer 1
|
||||||
Prof. Dr. Yusuf Esposito = Hof 1, Tisch 26, Nummer 2
|
Dennis Frank = Hof 1, Tisch 26, Nummer 2
|
||||||
Matthias Kovac = Hof 1, Tisch 26, Nummer 3
|
Nadine Frank = Hof 1, Tisch 26, Nummer 3
|
||||||
|
|
||||||
[27]
|
[27]
|
||||||
|
Anja Kovac = Hof 1, Tisch 27, Nummer 1
|
||||||
|
Marco Kovac = Hof 1, Tisch 27, Nummer 2
|
||||||
|
Lena Kovac = Hof 1, Tisch 27, Nummer 3
|
||||||
|
|
||||||
[28]
|
[28]
|
||||||
Emre Busch = Hof 1, Tisch 28, Nummer 1
|
Svenja Simon = Hof 1, Tisch 28, Nummer 1
|
||||||
Olga Busch = Hof 1, Tisch 28, Nummer 2
|
Prof. Dr. Yusuf Albrecht = Hof 1, Tisch 28, Nummer 2
|
||||||
Michael Busch = Hof 1, Tisch 28, Nummer 3
|
Prof. Dr. Markus Stein = Hof 1, Tisch 28, Nummer 3
|
||||||
Marie Busch = Hof 1, Tisch 28, Nummer 4
|
Matthias Popescu = Hof 1, Tisch 28, Nummer 4
|
||||||
|
|
||||||
[29]
|
[29]
|
||||||
Melanie Rossi = Hof 1, Tisch 29, Nummer 1
|
Nicole Wagner = Hof 1, Tisch 29, Nummer 1
|
||||||
Luca Rossi = Hof 1, Tisch 29, Nummer 2
|
Marco Wagner = Hof 1, Tisch 29, Nummer 2
|
||||||
Emilia Rossi = Hof 1, Tisch 29, Nummer 3
|
Sarah Wagner = Hof 1, Tisch 29, Nummer 3
|
||||||
|
Henry Wagner = Hof 1, Tisch 29, Nummer 4
|
||||||
|
|
||||||
[30]
|
[30]
|
||||||
Olga Hansen = Hof 1, Tisch 30, Nummer 1
|
Nadine Arnold = Hof 1, Tisch 30, Nummer 1
|
||||||
Markus Hansen = Hof 1, Tisch 30, Nummer 2
|
Marco Richter = Hof 1, Tisch 30, Nummer 2
|
||||||
Giovanna Hansen = Hof 1, Tisch 30, Nummer 3
|
Prof. Dr. Patrick Hoffmann = Hof 1, Tisch 30, Nummer 3
|
||||||
|
Marija Polat = Hof 1, Tisch 30, Nummer 4
|
||||||
|
|
||||||
[31]
|
[31]
|
||||||
Matthias Richter = Hof 1, Tisch 31, Nummer 1
|
Marija Aksoy = Hof 1, Tisch 31, Nummer 1
|
||||||
Greta Richter = Hof 1, Tisch 31, Nummer 2
|
Prof. Dr. Thomas Tran = Hof 1, Tisch 31, Nummer 2
|
||||||
Anton Richter = Hof 1, Tisch 31, Nummer 3
|
Sergej Petrov = Hof 1, Tisch 31, Nummer 3
|
||||||
Anja Richter = Hof 1, Tisch 31, Nummer 4
|
Kathrin Polat = Hof 1, Tisch 31, Nummer 4
|
||||||
|
|
||||||
[32]
|
[32]
|
||||||
Olga Tran = Hof 1, Tisch 32, Nummer 1
|
Sergej Aksoy = Hof 1, Tisch 32, Nummer 1
|
||||||
Prof. Dr. Dennis Werner = Hof 1, Tisch 32, Nummer 2
|
Sofia Aksoy = Hof 1, Tisch 32, Nummer 2
|
||||||
Dr. Thomas Hoffmann = Hof 1, Tisch 32, Nummer 3
|
Nadine Aksoy = Hof 1, Tisch 32, Nummer 3
|
||||||
Dr. Anja Seidel = Hof 1, Tisch 32, Nummer 4
|
Luca Aksoy = Hof 1, Tisch 32, Nummer 4
|
||||||
|
|
||||||
[33]
|
[33]
|
||||||
Andreas Berger = Hof 1, Tisch 33, Nummer 1
|
Elif Celik = Hof 1, Tisch 33, Nummer 1
|
||||||
Svenja Berger = Hof 1, Tisch 33, Nummer 2
|
Patrick Celik = Hof 1, Tisch 33, Nummer 2
|
||||||
Stefan Berger = Hof 1, Tisch 33, Nummer 3
|
Marie Aksoy = Hof 1, Tisch 33, Nummer 3
|
||||||
|
Thomas Aksoy = Hof 1, Tisch 33, Nummer 4
|
||||||
|
|
||||||
[34]
|
[34]
|
||||||
|
Jan Koch = Hof 1, Tisch 34, Nummer 1
|
||||||
|
Olga Koch = Hof 1, Tisch 34, Nummer 2
|
||||||
|
Emil Koch = Hof 1, Tisch 34, Nummer 3
|
||||||
|
Marie Koch = Hof 1, Tisch 34, Nummer 4
|
||||||
|
|
||||||
[35]
|
[35]
|
||||||
Felix Nowak = Hof 1, Tisch 35, Nummer 1
|
Henry Kovac = Hof 1, Tisch 35, Nummer 1
|
||||||
Noah Nowak = Hof 1, Tisch 35, Nummer 2
|
Tobias Kovac = Hof 1, Tisch 35, Nummer 2
|
||||||
Lina Nowak = Hof 1, Tisch 35, Nummer 3
|
Marija Kovac = Hof 1, Tisch 35, Nummer 3
|
||||||
Markus Nowak = Hof 1, Tisch 35, Nummer 4
|
|
||||||
|
|
||||||
[36]
|
[36]
|
||||||
Jan Braun = Hof 1, Tisch 36, Nummer 1
|
Svenja Lange = Hof 1, Tisch 36, Nummer 1
|
||||||
Aylin Nowak = Hof 1, Tisch 36, Nummer 2
|
Dragana Lange = Hof 1, Tisch 36, Nummer 2
|
||||||
Kathrin Nowak = Hof 1, Tisch 36, Nummer 3
|
Michael Lange = Hof 1, Tisch 36, Nummer 3
|
||||||
Dragana Braun = Hof 1, Tisch 36, Nummer 4
|
|
||||||
|
|
||||||
[37]
|
[37]
|
||||||
Christian Braun = Hof 1, Tisch 37, Nummer 1
|
Mia Zimmermann = Hof 1, Tisch 37, Nummer 1
|
||||||
Julia Braun = Hof 1, Tisch 37, Nummer 2
|
Markus Zimmermann = Hof 1, Tisch 37, Nummer 2
|
||||||
Nadine Braun = Hof 1, Tisch 37, Nummer 3
|
Svenja Zimmermann = Hof 1, Tisch 37, Nummer 3
|
||||||
Milan Braun = Hof 1, Tisch 37, Nummer 4
|
Jan Zimmermann = Hof 1, Tisch 37, Nummer 4
|
||||||
|
|
||||||
[38]
|
[38]
|
||||||
Prof. Dr. Emre Ludwig = Hof 1, Tisch 38, Nummer 1
|
Andreas Krause = Hof 1, Tisch 38, Nummer 1
|
||||||
Daniel Krause = Hof 1, Tisch 38, Nummer 2
|
Emma Krause = Hof 1, Tisch 38, Nummer 2
|
||||||
Markus Klein = Hof 1, Tisch 38, Nummer 3
|
Arda Krause = Hof 1, Tisch 38, Nummer 3
|
||||||
Nicole Aksoy = Hof 1, Tisch 38, Nummer 4
|
Julia Krause = Hof 1, Tisch 38, Nummer 4
|
||||||
|
|
||||||
[39]
|
[39]
|
||||||
Sandra Werner = Hof 1, Tisch 39, Nummer 1
|
Kathrin Horn = Hof 1, Tisch 39, Nummer 1
|
||||||
Marco Werner = Hof 1, Tisch 39, Nummer 2
|
Michael Horn = Hof 1, Tisch 39, Nummer 2
|
||||||
Andreas Werner = Hof 1, Tisch 39, Nummer 3
|
Layla Horn = Hof 1, Tisch 39, Nummer 3
|
||||||
Nadine Werner = Hof 1, Tisch 39, Nummer 4
|
Leon Horn = Hof 1, Tisch 39, Nummer 4
|
||||||
|
|
||||||
[40]
|
[40]
|
||||||
Marija Polat = Hof 1, Tisch 40, Nummer 1
|
Nadine Braun = Hof 1, Tisch 40, Nummer 1
|
||||||
Marco Richter = Hof 1, Tisch 40, Nummer 2
|
Jan Braun = Hof 1, Tisch 40, Nummer 2
|
||||||
Nadine Arnold = Hof 1, Tisch 40, Nummer 3
|
Dragana Braun = Hof 1, Tisch 40, Nummer 3
|
||||||
Prof. Dr. Patrick Hoffmann = Hof 1, Tisch 40, Nummer 4
|
|
||||||
|
|
||||||
[41]
|
[41]
|
||||||
Thomas Krause = Hof 1, Tisch 41, Nummer 1
|
Milan Braun = Hof 1, Tisch 41, Nummer 1
|
||||||
Nicole Peters = Hof 1, Tisch 41, Nummer 2
|
Christian Braun = Hof 1, Tisch 41, Nummer 2
|
||||||
|
Julia Braun = Hof 1, Tisch 41, Nummer 3
|
||||||
|
|
||||||
[42]
|
[42]
|
||||||
Dragana Bauer = Hof 1, Tisch 42, Nummer 1
|
Matteo Neumann = Hof 1, Tisch 42, Nummer 1
|
||||||
Dr. Nicole Hansen = Hof 1, Tisch 42, Nummer 2
|
Jennifer Neumann = Hof 1, Tisch 42, Nummer 2
|
||||||
Patrick Haas = Hof 1, Tisch 42, Nummer 3
|
Thomas Neumann = Hof 1, Tisch 42, Nummer 3
|
||||||
Prof. Dr. Sergej Ott = Hof 1, Tisch 42, Nummer 4
|
Lina Neumann = Hof 1, Tisch 42, Nummer 4
|
||||||
|
|
||||||
[43]
|
[43]
|
||||||
Nicole Kaya = Hof 1, Tisch 43, Nummer 1
|
Julia Wolf = Hof 1, Tisch 43, Nummer 1
|
||||||
Luca Kaya = Hof 1, Tisch 43, Nummer 2
|
Thomas Wolf = Hof 1, Tisch 43, Nummer 2
|
||||||
Christina Kaya = Hof 1, Tisch 43, Nummer 3
|
Emma Wolf = Hof 1, Tisch 43, Nummer 3
|
||||||
|
Ben Wolf = Hof 1, Tisch 43, Nummer 4
|
||||||
|
|
||||||
[44]
|
[44]
|
||||||
Marie Schmidt = Hof 1, Tisch 44, Nummer 1
|
Prof. Dr. Sergej Ott = Hof 1, Tisch 44, Nummer 1
|
||||||
Giovanna Schmidt = Hof 1, Tisch 44, Nummer 2
|
Dragana Bauer = Hof 1, Tisch 44, Nummer 2
|
||||||
Andreas Weber = Hof 1, Tisch 44, Nummer 3
|
Patrick Haas = Hof 1, Tisch 44, Nummer 3
|
||||||
Matthias Schmidt = Hof 1, Tisch 44, Nummer 4
|
Thomas Krause = Hof 1, Tisch 44, Nummer 4
|
||||||
|
|
||||||
[45]
|
[45]
|
||||||
Markus Barth = Hof 1, Tisch 45, Nummer 1
|
Dr. Nicole Hansen = Hof 1, Tisch 45, Nummer 1
|
||||||
Prof. Dr. Julia Richter = Hof 1, Tisch 45, Nummer 2
|
Nicole Peters = Hof 1, Tisch 45, Nummer 2
|
||||||
Dr. Jennifer Haas = Hof 1, Tisch 45, Nummer 3
|
Prof. Dr. Timo Kaya = Hof 1, Tisch 45, Nummer 3
|
||||||
Matthias Petrov = Hof 1, Tisch 45, Nummer 4
|
Dr. Sandra Demir = Hof 1, Tisch 45, Nummer 4
|
||||||
|
|
||||||
[46]
|
[46]
|
||||||
Sarah Wagner = Hof 2, Tisch 46, Nummer 1
|
Patrick Winkler = Hof 2, Tisch 46, Nummer 1
|
||||||
Henry Wagner = Hof 2, Tisch 46, Nummer 2
|
Kathrin Petrov = Hof 2, Tisch 46, Nummer 2
|
||||||
Nicole Wagner = Hof 2, Tisch 46, Nummer 3
|
Lena Winkler = Hof 2, Tisch 46, Nummer 3
|
||||||
Marco Wagner = Hof 2, Tisch 46, Nummer 4
|
Milan Petrov = Hof 2, Tisch 46, Nummer 4
|
||||||
|
|
||||||
[47]
|
[47]
|
||||||
|
Christian Arnold = Hof 2, Tisch 47, Nummer 1
|
||||||
|
Mila Arnold = Hof 2, Tisch 47, Nummer 2
|
||||||
|
Jennifer Arnold = Hof 2, Tisch 47, Nummer 3
|
||||||
|
|
||||||
[48]
|
[48]
|
||||||
Emil Koch = Hof 2, Tisch 48, Nummer 1
|
Nicole Engel = Hof 2, Tisch 48, Nummer 1
|
||||||
Marie Koch = Hof 2, Tisch 48, Nummer 2
|
Anton Engel = Hof 2, Tisch 48, Nummer 2
|
||||||
Olga Koch = Hof 2, Tisch 48, Nummer 3
|
Julia Engel = Hof 2, Tisch 48, Nummer 3
|
||||||
Jan Koch = Hof 2, Tisch 48, Nummer 4
|
|
||||||
|
|
||||||
[49]
|
[49]
|
||||||
Patrick Busch = Hof 2, Tisch 49, Nummer 1
|
|
||||||
Emre Hoffmann = Hof 2, Tisch 49, Nummer 2
|
|
||||||
Michael Koch = Hof 2, Tisch 49, Nummer 3
|
|
||||||
Sarah Koch = Hof 2, Tisch 49, Nummer 4
|
|
||||||
|
|
||||||
[50]
|
[50]
|
||||||
Jan Becker = Hof 2, Tisch 50, Nummer 1
|
Thomas Bianchi = Hof 2, Tisch 50, Nummer 1
|
||||||
Sandra Becker = Hof 2, Tisch 50, Nummer 2
|
Sandra Bianchi = Hof 2, Tisch 50, Nummer 2
|
||||||
Nicole Becker = Hof 2, Tisch 50, Nummer 3
|
Mia Bianchi = Hof 2, Tisch 50, Nummer 3
|
||||||
|
|
||||||
[51]
|
[51]
|
||||||
Sofia Nguyen = Hof 2, Tisch 51, Nummer 1
|
|
||||||
Anja Nguyen = Hof 2, Tisch 51, Nummer 2
|
|
||||||
Daniel Nguyen = Hof 2, Tisch 51, Nummer 3
|
|
||||||
|
|
||||||
[52]
|
[52]
|
||||||
Mila Arnold = Hof 2, Tisch 52, Nummer 1
|
Kathrin Nowak = Hof 2, Tisch 52, Nummer 1
|
||||||
Christian Arnold = Hof 2, Tisch 52, Nummer 2
|
Jan Lange = Hof 2, Tisch 52, Nummer 2
|
||||||
Leni Arnold = Hof 2, Tisch 52, Nummer 3
|
Aylin Nowak = Hof 2, Tisch 52, Nummer 3
|
||||||
|
Sofia Lange = Hof 2, Tisch 52, Nummer 4
|
||||||
|
|
||||||
[53]
|
[53]
|
||||||
Sarah Polat = Hof 2, Tisch 53, Nummer 1
|
Lina Nowak = Hof 2, Tisch 53, Nummer 1
|
||||||
Stefan Polat = Hof 2, Tisch 53, Nummer 2
|
Noah Nowak = Hof 2, Tisch 53, Nummer 2
|
||||||
Patrick Arnold = Hof 2, Tisch 53, Nummer 3
|
Markus Nowak = Hof 2, Tisch 53, Nummer 3
|
||||||
Jennifer Arnold = Hof 2, Tisch 53, Nummer 4
|
Felix Nowak = Hof 2, Tisch 53, Nummer 4
|
||||||
|
|
||||||
[54]
|
[54]
|
||||||
Kathrin Polat = Hof 2, Tisch 54, Nummer 1
|
Emre Hoffmann = Hof 2, Tisch 54, Nummer 1
|
||||||
Sergej Petrov = Hof 2, Tisch 54, Nummer 2
|
Patrick Busch = Hof 2, Tisch 54, Nummer 2
|
||||||
Prof. Dr. Thomas Tran = Hof 2, Tisch 54, Nummer 3
|
Prof. Dr. Dragana Dietrich = Hof 2, Tisch 54, Nummer 3
|
||||||
Marija Aksoy = Hof 2, Tisch 54, Nummer 4
|
Sergej Lange = Hof 2, Tisch 54, Nummer 4
|
||||||
|
|
||||||
[55]
|
[55]
|
||||||
Kathrin Sahin = Hof 2, Tisch 55, Nummer 1
|
Marija Becker = Hof 2, Tisch 55, Nummer 1
|
||||||
Patrick Sahin = Hof 2, Tisch 55, Nummer 2
|
Matthias Kovac = Hof 2, Tisch 55, Nummer 2
|
||||||
Markus Sahin = Hof 2, Tisch 55, Nummer 3
|
Prof. Dr. Yusuf Esposito = Hof 2, Tisch 55, Nummer 3
|
||||||
Nicole Sahin = Hof 2, Tisch 55, Nummer 4
|
|
||||||
|
|
||||||
[56]
|
[56]
|
||||||
Emre Ludwig = Hof 2, Tisch 56, Nummer 1
|
Christina Kaya = Hof 2, Tisch 56, Nummer 1
|
||||||
Elias Ludwig = Hof 2, Tisch 56, Nummer 2
|
Nicole Kaya = Hof 2, Tisch 56, Nummer 2
|
||||||
Elif Ludwig = Hof 2, Tisch 56, Nummer 3
|
Luca Kaya = Hof 2, Tisch 56, Nummer 3
|
||||||
Giovanna Ludwig = Hof 2, Tisch 56, Nummer 4
|
|
||||||
|
|
||||||
[57]
|
[57]
|
||||||
Dr. Olga Klein = Hof 2, Tisch 57, Nummer 1
|
Prof. Dr. Emre Albrecht = Hof 2, Tisch 57, Nummer 1
|
||||||
Prof. Dr. Marco Seifert = Hof 2, Tisch 57, Nummer 2
|
Dr. Jennifer Arnold = Hof 2, Tisch 57, Nummer 2
|
||||||
Dr. Aylin Ludwig = Hof 2, Tisch 57, Nummer 3
|
Dr. Olga Klein = Hof 2, Tisch 57, Nummer 3
|
||||||
Dr. Patrick Kraus = Hof 2, Tisch 57, Nummer 4
|
|
||||||
|
|
||||||
[58]
|
[58]
|
||||||
Yusuf Weber = Hof 2, Tisch 58, Nummer 1
|
Yusuf Engel = Hof 2, Tisch 58, Nummer 1
|
||||||
Giovanna Schwarz = Hof 2, Tisch 58, Nummer 2
|
Anja Engel = Hof 2, Tisch 58, Nummer 2
|
||||||
Matthias Krause = Hof 2, Tisch 58, Nummer 3
|
Olga Roth = Hof 2, Tisch 58, Nummer 3
|
||||||
|
Thomas Bianchi = Hof 2, Tisch 58, Nummer 4
|
||||||
|
|
||||||
[59]
|
[59]
|
||||||
Katrin Werner = Hof 2, Tisch 59, Nummer 1
|
Andreas Weber = Hof 2, Tisch 59, Nummer 1
|
||||||
Sergej Lange = Hof 2, Tisch 59, Nummer 2
|
Matthias Petrov = Hof 2, Tisch 59, Nummer 2
|
||||||
Dr. Michael Aksoy = Hof 2, Tisch 59, Nummer 3
|
Prof. Dr. Julia Richter = Hof 2, Tisch 59, Nummer 3
|
||||||
Prof. Dr. Dragana Dietrich = Hof 2, Tisch 59, Nummer 4
|
|
||||||
|
|
||||||
[60]
|
[60]
|
||||||
Arda Maier = Hof 2, Tisch 60, Nummer 1
|
Marie Schmidt = Hof 2, Tisch 60, Nummer 1
|
||||||
Olga Maier = Hof 2, Tisch 60, Nummer 2
|
Giovanna Schmidt = Hof 2, Tisch 60, Nummer 2
|
||||||
Christian Maier = Hof 2, Tisch 60, Nummer 3
|
Matthias Schmidt = Hof 2, Tisch 60, Nummer 3
|
||||||
Sarah Maier = Hof 2, Tisch 60, Nummer 4
|
|
||||||
|
|
||||||
[61]
|
[61]
|
||||||
Andreas Simon = Hof 2, Tisch 61, Nummer 1
|
Jan Becker = Hof 2, Tisch 61, Nummer 1
|
||||||
Markus Simon = Hof 2, Tisch 61, Nummer 2
|
Sandra Becker = Hof 2, Tisch 61, Nummer 2
|
||||||
Emma Simon = Hof 2, Tisch 61, Nummer 3
|
Nicole Becker = Hof 2, Tisch 61, Nummer 3
|
||||||
Lena Simon = Hof 2, Tisch 61, Nummer 4
|
|
||||||
|
|
||||||
[62]
|
[62]
|
||||||
Patrick Zimmermann = Hof 2, Tisch 62, Nummer 1
|
Sofia Nguyen = Hof 2, Tisch 62, Nummer 1
|
||||||
Stefan Richter = Hof 2, Tisch 62, Nummer 2
|
Anja Nguyen = Hof 2, Tisch 62, Nummer 2
|
||||||
Prof. Dr. Dennis Schmitt = Hof 2, Tisch 62, Nummer 3
|
Daniel Nguyen = Hof 2, Tisch 62, Nummer 3
|
||||||
|
|
||||||
[63]
|
[63]
|
||||||
Milan Klein = Hof 2, Tisch 63, Nummer 1
|
Ben Stein = Hof 2, Tisch 63, Nummer 1
|
||||||
Stefanie Klein = Hof 2, Tisch 63, Nummer 2
|
Emilia Stein = Hof 2, Tisch 63, Nummer 2
|
||||||
Lina Klein = Hof 2, Tisch 63, Nummer 3
|
Giovanna Stein = Hof 2, Tisch 63, Nummer 3
|
||||||
|
Thomas Stein = Hof 2, Tisch 63, Nummer 4
|
||||||
|
|
||||||
[64]
|
[64]
|
||||||
Sarah Roth = Hof 2, Tisch 64, Nummer 1
|
Katrin Werner = Hof 2, Tisch 64, Nummer 1
|
||||||
Christian Roth = Hof 2, Tisch 64, Nummer 2
|
Dr. Aylin Ludwig = Hof 2, Tisch 64, Nummer 2
|
||||||
Sofia Roth = Hof 2, Tisch 64, Nummer 3
|
Matthias Krause = Hof 2, Tisch 64, Nummer 3
|
||||||
|
Dr. Michael Aksoy = Hof 2, Tisch 64, Nummer 4
|
||||||
|
|
||||||
[65]
|
[65]
|
||||||
Thomas Sahin = Hof 2, Tisch 65, Nummer 1
|
Yusuf Weber = Hof 2, Tisch 65, Nummer 1
|
||||||
Prof. Dr. Anja Richter = Hof 2, Tisch 65, Nummer 2
|
Giovanna Schwarz = Hof 2, Tisch 65, Nummer 2
|
||||||
Dr. Jan Thiel = Hof 2, Tisch 65, Nummer 3
|
Prof. Dr. Marco Seifert = Hof 2, Tisch 65, Nummer 3
|
||||||
|
Dr. Patrick Kraus = Hof 2, Tisch 65, Nummer 4
|
||||||
|
|
||||||
[66]
|
[66]
|
||||||
Patrick Barth = Hof 2, Tisch 66, Nummer 1
|
Stefan Richter = Hof 2, Tisch 66, Nummer 1
|
||||||
Nadine Barth = Hof 2, Tisch 66, Nummer 2
|
Prof. Dr. Dennis Schmitt = Hof 2, Tisch 66, Nummer 2
|
||||||
Timo Barth = Hof 2, Tisch 66, Nummer 3
|
|
||||||
Lina Barth = Hof 2, Tisch 66, Nummer 4
|
|
||||||
|
|
||||||
[67]
|
[67]
|
||||||
Prof. Dr. Emre Albrecht = Hof 2, Tisch 67, Nummer 1
|
Stefanie Klein = Hof 2, Tisch 67, Nummer 1
|
||||||
Olga Roth = Hof 2, Tisch 67, Nummer 2
|
Milan Klein = Hof 2, Tisch 67, Nummer 2
|
||||||
Dr. Jennifer Arnold = Hof 2, Tisch 67, Nummer 3
|
Lina Klein = Hof 2, Tisch 67, Nummer 3
|
||||||
Thomas Bianchi = Hof 2, Tisch 67, Nummer 4
|
|
||||||
|
|
||||||
[68]
|
[68]
|
||||||
Katrin Weber = Hof 2, Tisch 68, Nummer 1
|
Elif Seifert = Hof 2, Tisch 68, Nummer 1
|
||||||
Dr. Kathrin Koch = Hof 2, Tisch 68, Nummer 2
|
Yusuf Seifert = Hof 2, Tisch 68, Nummer 2
|
||||||
Dr. Julia Kuhn = Hof 2, Tisch 68, Nummer 3
|
Markus Barth = Hof 2, Tisch 68, Nummer 3
|
||||||
|
Dr. Jennifer Haas = Hof 2, Tisch 68, Nummer 4
|
||||||
|
|
||||||
[69]
|
[69]
|
||||||
Marija Tran = Hof 2, Tisch 69, Nummer 1
|
Katrin Polat = Hof 2, Tisch 69, Nummer 1
|
||||||
Luca Werner = Hof 2, Tisch 69, Nummer 2
|
Markus Polat = Hof 2, Tisch 69, Nummer 2
|
||||||
Prof. Dr. Stefan Schmitt = Hof 2, Tisch 69, Nummer 3
|
Stefanie Polat = Hof 2, Tisch 69, Nummer 3
|
||||||
|
|
||||||
[70]
|
[70]
|
||||||
Jan Zimmermann = Hof 2, Tisch 70, Nummer 1
|
Sarah Polat = Hof 2, Tisch 70, Nummer 1
|
||||||
Markus Zimmermann = Hof 2, Tisch 70, Nummer 2
|
Julia Franke = Hof 2, Tisch 70, Nummer 2
|
||||||
Mia Zimmermann = Hof 2, Tisch 70, Nummer 3
|
Olga Franke = Hof 2, Tisch 70, Nummer 3
|
||||||
Svenja Zimmermann = Hof 2, Tisch 70, Nummer 4
|
Stefan Polat = Hof 2, Tisch 70, Nummer 4
|
||||||
|
|
||||||
[71]
|
[71]
|
||||||
Luca Kovac = Hof 2, Tisch 71, Nummer 1
|
Dr. Kathrin Koch = Hof 2, Tisch 71, Nummer 1
|
||||||
Dr. Dragana Krause = Hof 2, Tisch 71, Nummer 2
|
Katrin Weber = Hof 2, Tisch 71, Nummer 2
|
||||||
Luca Ott = Hof 2, Tisch 71, Nummer 3
|
Dr. Julia Kuhn = Hof 2, Tisch 71, Nummer 3
|
||||||
|
|
||||||
[72]
|
[72]
|
||||||
Dragana Lange = Hof 2, Tisch 72, Nummer 1
|
Marija Tran = Hof 2, Tisch 72, Nummer 1
|
||||||
Michael Lange = Hof 2, Tisch 72, Nummer 2
|
Luca Werner = Hof 2, Tisch 72, Nummer 2
|
||||||
Sofia Lange = Hof 2, Tisch 72, Nummer 3
|
Prof. Dr. Stefan Schmitt = Hof 2, Tisch 72, Nummer 3
|
||||||
|
|
||||||
[73]
|
[73]
|
||||||
Michael Franke = Hof 2, Tisch 73, Nummer 1
|
Sarah Roth = Hof 2, Tisch 73, Nummer 1
|
||||||
Amira Franke = Hof 2, Tisch 73, Nummer 2
|
Christian Roth = Hof 2, Tisch 73, Nummer 2
|
||||||
Svenja Lange = Hof 2, Tisch 73, Nummer 3
|
Sofia Roth = Hof 2, Tisch 73, Nummer 3
|
||||||
Jan Lange = Hof 2, Tisch 73, Nummer 4
|
|
||||||
|
|
||||||
[74]
|
[74]
|
||||||
Emma Krause = Hof 2, Tisch 74, Nummer 1
|
Thomas Sahin = Hof 2, Tisch 74, Nummer 1
|
||||||
Julia Krause = Hof 2, Tisch 74, Nummer 2
|
Prof. Dr. Anja Richter = Hof 2, Tisch 74, Nummer 2
|
||||||
Arda Krause = Hof 2, Tisch 74, Nummer 3
|
Dr. Jan Thiel = Hof 2, Tisch 74, Nummer 3
|
||||||
Andreas Krause = Hof 2, Tisch 74, Nummer 4
|
|
||||||
|
|
||||||
[75]
|
[75]
|
||||||
Mia Pohl = Hof 2, Tisch 75, Nummer 1
|
Patrick Zimmermann = Hof 2, Tisch 75, Nummer 1
|
||||||
Theo Pohl = Hof 2, Tisch 75, Nummer 2
|
Luca Kovac = Hof 2, Tisch 75, Nummer 2
|
||||||
Dragana Pohl = Hof 2, Tisch 75, Nummer 3
|
Dr. Dragana Krause = Hof 2, Tisch 75, Nummer 3
|
||||||
Emre Pohl = Hof 2, Tisch 75, Nummer 4
|
Luca Ott = Hof 2, Tisch 75, Nummer 4
|
||||||
|
|
||||||
[76]
|
[76]
|
||||||
Giovanna Stein = Hof 2, Tisch 76, Nummer 1
|
Leni Seifert = Hof 2, Tisch 76, Nummer 1
|
||||||
Thomas Stein = Hof 2, Tisch 76, Nummer 2
|
Timo Seifert = Hof 2, Tisch 76, Nummer 2
|
||||||
Emilia Stein = Hof 2, Tisch 76, Nummer 3
|
Nicole Seifert = Hof 2, Tisch 76, Nummer 3
|
||||||
Ben Stein = Hof 2, Tisch 76, Nummer 4
|
|
||||||
|
|
||||||
[77]
|
[77]
|
||||||
Dr. Nadine Berger = Hof 2, Tisch 77, Nummer 1
|
Emre Pohl = Hof 2, Tisch 77, Nummer 1
|
||||||
Prof. Dr. Yusuf Ott = Hof 2, Tisch 77, Nummer 2
|
Dragana Pohl = Hof 2, Tisch 77, Nummer 2
|
||||||
Patrick Lehmann = Hof 2, Tisch 77, Nummer 3
|
Theo Pohl = Hof 2, Tisch 77, Nummer 3
|
||||||
|
Mia Pohl = Hof 2, Tisch 77, Nummer 4
|
||||||
|
|
||||||
[78]
|
[78]
|
||||||
Jennifer Dietrich = Hof 2, Tisch 78, Nummer 1
|
Sarah Maier = Hof 2, Tisch 78, Nummer 1
|
||||||
Marco Dietrich = Hof 2, Tisch 78, Nummer 2
|
Arda Maier = Hof 2, Tisch 78, Nummer 2
|
||||||
Sofia Dietrich = Hof 2, Tisch 78, Nummer 3
|
Olga Maier = Hof 2, Tisch 78, Nummer 3
|
||||||
|
Christian Maier = Hof 2, Tisch 78, Nummer 4
|
||||||
|
|
||||||
[79]
|
[79]
|
||||||
Thomas Wolf = Hof 2, Tisch 79, Nummer 1
|
Amira Franke = Hof 2, Tisch 79, Nummer 1
|
||||||
Julia Wolf = Hof 2, Tisch 79, Nummer 2
|
Marco Franke = Hof 2, Tisch 79, Nummer 2
|
||||||
Emma Wolf = Hof 2, Tisch 79, Nummer 3
|
Michael Franke = Hof 2, Tisch 79, Nummer 3
|
||||||
Ben Wolf = Hof 2, Tisch 79, Nummer 4
|
|
||||||
|
|
||||||
[80]
|
[80]
|
||||||
Matthias Ott = Hof 2, Tisch 80, Nummer 1
|
Nicole Sahin = Hof 2, Tisch 80, Nummer 1
|
||||||
Hannah Ott = Hof 2, Tisch 80, Nummer 2
|
Kathrin Sahin = Hof 2, Tisch 80, Nummer 2
|
||||||
Melanie Ott = Hof 2, Tisch 80, Nummer 3
|
Markus Sahin = Hof 2, Tisch 80, Nummer 3
|
||||||
|
Patrick Sahin = Hof 2, Tisch 80, Nummer 4
|
||||||
|
|
||||||
[81]
|
[81]
|
||||||
Julia Franke = Hof 2, Tisch 81, Nummer 1
|
Dr. Nadine Berger = Hof 2, Tisch 81, Nummer 1
|
||||||
Marco Franke = Hof 2, Tisch 81, Nummer 2
|
Patrick Lehmann = Hof 2, Tisch 81, Nummer 2
|
||||||
Olga Franke = Hof 2, Tisch 81, Nummer 3
|
Prof. Dr. Yusuf Ott = Hof 2, Tisch 81, Nummer 3
|
||||||
|
|
||||||
[82]
|
[82]
|
||||||
Christina Thiel = Hof 2, Tisch 82, Nummer 1
|
Elias Ludwig = Hof 2, Tisch 82, Nummer 1
|
||||||
Julia Thiel = Hof 2, Tisch 82, Nummer 2
|
Elif Ludwig = Hof 2, Tisch 82, Nummer 2
|
||||||
Yusuf Thiel = Hof 2, Tisch 82, Nummer 3
|
Emre Ludwig = Hof 2, Tisch 82, Nummer 3
|
||||||
|
Giovanna Ludwig = Hof 2, Tisch 82, Nummer 4
|
||||||
|
|
||||||
[83]
|
[83]
|
||||||
Matteo Neumann = Hof 2, Tisch 83, Nummer 1
|
Lina Barth = Hof 2, Tisch 83, Nummer 1
|
||||||
Lina Neumann = Hof 2, Tisch 83, Nummer 2
|
Nadine Barth = Hof 2, Tisch 83, Nummer 2
|
||||||
Jennifer Neumann = Hof 2, Tisch 83, Nummer 3
|
Timo Barth = Hof 2, Tisch 83, Nummer 3
|
||||||
Thomas Neumann = Hof 2, Tisch 83, Nummer 4
|
Patrick Barth = Hof 2, Tisch 83, Nummer 4
|
||||||
|
|
||||||
[84]
|
[84]
|
||||||
Michael Horn = Hof 2, Tisch 84, Nummer 1
|
Andreas Simon = Hof 2, Tisch 84, Nummer 1
|
||||||
Layla Horn = Hof 2, Tisch 84, Nummer 2
|
Markus Simon = Hof 2, Tisch 84, Nummer 2
|
||||||
Kathrin Horn = Hof 2, Tisch 84, Nummer 3
|
Emma Simon = Hof 2, Tisch 84, Nummer 3
|
||||||
Leon Horn = Hof 2, Tisch 84, Nummer 4
|
Lena Simon = Hof 2, Tisch 84, Nummer 4
|
||||||
|
|
||||||
[85]
|
[85]
|
||||||
Thomas Hartmann = Hof 2, Tisch 85, Nummer 1
|
Sofia Dietrich = Hof 2, Tisch 85, Nummer 1
|
||||||
Olga Hartmann = Hof 2, Tisch 85, Nummer 2
|
Marco Dietrich = Hof 2, Tisch 85, Nummer 2
|
||||||
Deniz Hartmann = Hof 2, Tisch 85, Nummer 3
|
Jennifer Dietrich = Hof 2, Tisch 85, Nummer 3
|
||||||
|
|
||||||
[86]
|
[86]
|
||||||
Nadine Hartmann = Hof 2, Tisch 86, Nummer 1
|
Yusuf Thiel = Hof 2, Tisch 86, Nummer 1
|
||||||
Marija Hartmann = Hof 2, Tisch 86, Nummer 2
|
Christina Thiel = Hof 2, Tisch 86, Nummer 2
|
||||||
Olga Ott = Hof 2, Tisch 86, Nummer 3
|
Julia Thiel = Hof 2, Tisch 86, Nummer 3
|
||||||
Daniel Ott = Hof 2, Tisch 86, Nummer 4
|
|
||||||
|
|
||||||
[87]
|
[87]
|
||||||
|
Sofia Schmitt = Hof 2, Tisch 87, Nummer 1
|
||||||
|
Sarah Schmitt = Hof 2, Tisch 87, Nummer 2
|
||||||
|
Markus Schmitt = Hof 2, Tisch 87, Nummer 3
|
||||||
|
|
||||||
[88]
|
[88]
|
||||||
Markus Polat = Hof 2, Tisch 88, Nummer 1
|
Emilia Rossi = Hof 2, Tisch 88, Nummer 1
|
||||||
Katrin Polat = Hof 2, Tisch 88, Nummer 2
|
Melanie Rossi = Hof 2, Tisch 88, Nummer 2
|
||||||
Stefanie Polat = Hof 2, Tisch 88, Nummer 3
|
Luca Rossi = Hof 2, Tisch 88, Nummer 3
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 1, Nummer 2
|
AA, A, Dipl. Ing. = Hof 1, Tisch 3, Nummer 2
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 1, Nummer 3
|
AA, A, Dipl. Ing. = Hof 1, Tisch 3, Nummer 3
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 1, Nummer 4
|
AA, A, Dipl. Ing. = Hof 1, Tisch 3, Nummer 4
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 1, Nummer 5
|
AA, A, Dipl. Ing. = Hof 1, Tisch 3, Nummer 5
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 1, Nummer 6
|
AA, A, Dipl. Ing. = Hof 1, Tisch 3, Nummer 6
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 2, Nummer 2
|
AA, A, Dipl. Ing. = Hof 1, Tisch 4, Nummer 2
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 2, Nummer 3
|
AA, A, Dipl. Ing. = Hof 1, Tisch 4, Nummer 3
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 2, Nummer 4
|
AA, A, Dipl. Ing. = Hof 1, Tisch 4, Nummer 4
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 2, Nummer 5
|
AA, A, Dipl. Ing. = Hof 1, Tisch 4, Nummer 5
|
||||||
AA, A, Dipl. Ing. = Hof 1, Tisch 2, Nummer 6
|
AA, A, Dipl. Ing. = Hof 1, Tisch 4, Nummer 6
|
||||||
BB, B, Prof. = Hof 1, Tisch 3, Nummer 2
|
BB, B, Prof. = Hof 1, Tisch 1, Nummer 2
|
||||||
BB, B, Prof. = Hof 1, Tisch 3, Nummer 3
|
BB, B, Prof. = Hof 1, Tisch 1, Nummer 3
|
||||||
BB, B, Prof. = Hof 1, Tisch 3, Nummer 4
|
BB, B, Prof. = Hof 1, Tisch 1, Nummer 4
|
||||||
BB, B, Prof. = Hof 1, Tisch 3, Nummer 5
|
BB, B, Prof. = Hof 1, Tisch 1, Nummer 5
|
||||||
CC, C, Dr. = Hof 1, Tisch 4, Nummer 2
|
CC, C, Dr. = Hof 1, Tisch 2, Nummer 2
|
||||||
CC, C, Dr. = Hof 1, Tisch 4, Nummer 3
|
CC, C, Dr. = Hof 1, Tisch 2, Nummer 3
|
||||||
CC, C, Dr. = Hof 1, Tisch 4, Nummer 4
|
CC, C, Dr. = Hof 1, Tisch 2, Nummer 4
|
||||||
CC, C, Dr. = Hof 1, Tisch 4, Nummer 5
|
CC, C, Dr. = Hof 1, Tisch 2, Nummer 5
|
||||||
CC, C, Dr. = Hof 1, Tisch 4, Nummer 6
|
CC, C, Dr. = Hof 1, Tisch 2, Nummer 6
|
||||||
|
|||||||
|
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="405.657" height="108.914" viewBox="0 0 405.657 108.914">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<circle cx="252.286" cy="54.4572" r="44.4572" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="252.286" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="274.743" cy="54.4572" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.286" cy="76.9144" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="229.829" cy="54.4572" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.286" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="252.286" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
|
||||||
|
<circle cx="54.4572" cy="54.4572" r="44.4572" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="54.4572" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="75.8152" cy="47.5175" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="67.6572" cy="72.6254" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="41.2572" cy="72.6254" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="33.0991" cy="47.5175" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="54.4572" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="54.4572" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
|
||||||
|
<circle cx="153.372" cy="54.4572" r="44.4572" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="153.372" cy="32" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="174.73" cy="47.5175" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="166.572" cy="72.6254" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="140.172" cy="72.6254" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="132.013" cy="47.5175" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="153.372" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="153.372" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
|
||||||
|
<circle cx="351.2" cy="54.4572" r="44.4572" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="351.2" cy="32" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="372.558" cy="47.5175" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="364.4" cy="72.6254" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="338" cy="72.6254" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="329.842" cy="47.5175" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="351.2" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="351.2" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -1,27 +1,27 @@
|
|||||||
[1]
|
[1]
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 1, Nummer 1
|
Prof. B BB = Hof 1, Tisch 1, Nummer 1
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 1, Nummer 2
|
Prof. B BB = Hof 1, Tisch 1, Nummer 2
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 1, Nummer 3
|
Prof. B BB = Hof 1, Tisch 1, Nummer 3
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 1, Nummer 4
|
Prof. B BB = Hof 1, Tisch 1, Nummer 4
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 1, Nummer 5
|
|
||||||
|
|
||||||
[2]
|
[2]
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 2, Nummer 1
|
Dr. C CC = Hof 1, Tisch 2, Nummer 1
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 2, Nummer 2
|
Dr. C CC = Hof 1, Tisch 2, Nummer 2
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 2, Nummer 3
|
Dr. C CC = Hof 1, Tisch 2, Nummer 3
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 2, Nummer 4
|
Dr. C CC = Hof 1, Tisch 2, Nummer 4
|
||||||
Dipl. Ing. A AA = Hof 1, Tisch 2, Nummer 5
|
Dr. C CC = Hof 1, Tisch 2, Nummer 5
|
||||||
|
|
||||||
[3]
|
[3]
|
||||||
Prof. B BB = Hof 1, Tisch 3, Nummer 1
|
Dipl. Ing. A AA = Hof 1, Tisch 3, Nummer 1
|
||||||
Prof. B BB = Hof 1, Tisch 3, Nummer 2
|
Dipl. Ing. A AA = Hof 1, Tisch 3, Nummer 2
|
||||||
Prof. B BB = Hof 1, Tisch 3, Nummer 3
|
Dipl. Ing. A AA = Hof 1, Tisch 3, Nummer 3
|
||||||
Prof. B BB = Hof 1, Tisch 3, Nummer 4
|
Dipl. Ing. A AA = Hof 1, Tisch 3, Nummer 4
|
||||||
|
Dipl. Ing. A AA = Hof 1, Tisch 3, Nummer 5
|
||||||
|
|
||||||
[4]
|
[4]
|
||||||
Dr. C CC = Hof 1, Tisch 4, Nummer 1
|
Dipl. Ing. A AA = Hof 1, Tisch 4, Nummer 1
|
||||||
Dr. C CC = Hof 1, Tisch 4, Nummer 2
|
Dipl. Ing. A AA = Hof 1, Tisch 4, Nummer 2
|
||||||
Dr. C CC = Hof 1, Tisch 4, Nummer 3
|
Dipl. Ing. A AA = Hof 1, Tisch 4, Nummer 3
|
||||||
Dr. C CC = Hof 1, Tisch 4, Nummer 4
|
Dipl. Ing. A AA = Hof 1, Tisch 4, Nummer 4
|
||||||
Dr. C CC = Hof 1, Tisch 4, Nummer 5
|
Dipl. Ing. A AA = Hof 1, Tisch 4, Nummer 5
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"gruppen": [
|
||||||
|
{
|
||||||
|
"anzahl": 10,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "A",
|
||||||
|
"nachname": "AA",
|
||||||
|
"titel": "Dipl. Ing."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anzahl": 4,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "B",
|
||||||
|
"nachname": "BB",
|
||||||
|
"titel": "Prof."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anzahl": 5,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "C",
|
||||||
|
"nachname": "CC",
|
||||||
|
"titel": "Dr."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<Bestellung>
|
|
||||||
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>A</Vorname>
|
|
||||||
<Nachname>AA</Nachname>
|
|
||||||
<Titel>Dipl. Ing.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>10</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>B</Vorname>
|
|
||||||
<Nachname>BB</Nachname>
|
|
||||||
<Titel>Prof.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>4</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>C</Vorname>
|
|
||||||
<Nachname>CC</Nachname>
|
|
||||||
<Titel>Dr.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>5</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
</Bestellung>
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500" font-family="sans-serif">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<text x="450" y="30" text-anchor="middle" font-size="16" fill="#333">Entwicklung der Loesungsfindung</text>
|
||||||
|
<line x1="60" y1="60" x2="60" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440" x2="840" y2="440" stroke="#333" stroke-width="1.5"/>
|
||||||
|
<line x1="60" y1="440.0" x2="840" y2="440.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="444.0" text-anchor="end" font-size="11" fill="#666">-76</text>
|
||||||
|
<line x1="60" y1="364.0" x2="840" y2="364.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="368.0" text-anchor="end" font-size="11" fill="#666">-62</text>
|
||||||
|
<line x1="60" y1="288.0" x2="840" y2="288.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="292.0" text-anchor="end" font-size="11" fill="#666">-48</text>
|
||||||
|
<line x1="60" y1="212.0" x2="840" y2="212.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="216.0" text-anchor="end" font-size="11" fill="#666">-34</text>
|
||||||
|
<line x1="60" y1="136.0" x2="840" y2="136.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="140.0" text-anchor="end" font-size="11" fill="#666">-20</text>
|
||||||
|
<line x1="60" y1="60.0" x2="840" y2="60.0" stroke="#eee" stroke-width="1"/>
|
||||||
|
<text x="52" y="64.0" text-anchor="end" font-size="11" fill="#666">-6</text>
|
||||||
|
<text x="18" y="250" text-anchor="middle" font-size="12" fill="#333" transform="rotate(-90 18 250)">Wertigkeit (hoeher = besser)</text>
|
||||||
|
<text x="450" y="482" text-anchor="middle" font-size="12" fill="#333">Zyklus-Aktion (Zeit)</text>
|
||||||
|
<text x="60.0" y="456" text-anchor="middle" font-size="10" fill="#999">e</text>
|
||||||
|
<text x="108.8" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="157.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="206.2" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="255.0" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="303.8" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="352.5" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="401.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="450.0" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="498.8" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="547.5" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="596.2" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<text x="645.0" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="693.8" y="456" text-anchor="middle" font-size="10" fill="#999">m</text>
|
||||||
|
<text x="742.5" y="456" text-anchor="middle" font-size="10" fill="#999">j</text>
|
||||||
|
<text x="791.2" y="456" text-anchor="middle" font-size="10" fill="#999">z</text>
|
||||||
|
<text x="840.0" y="456" text-anchor="middle" font-size="10" fill="#999">s</text>
|
||||||
|
<polyline points="60.0,60.0 108.8,60.0 157.5,60.0 206.2,60.0 255.0,60.0 303.8,60.0 352.5,60.0 401.2,60.0 450.0,60.0 498.8,60.0 547.5,60.0 596.2,60.0 645.0,60.0 693.8,60.0 742.5,60.0 791.2,60.0 840.0,60.0" fill="none" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,168.6 108.8,77.4 157.5,77.4 206.2,142.5 255.0,120.8 303.8,120.8 352.5,64.3 401.2,64.3 450.0,94.7 498.8,84.6 547.5,84.6 596.2,60.0 645.0,60.0 693.8,66.5 742.5,64.3 791.2,64.3 840.0,60.0" fill="none" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<polyline points="60.0,440.0 108.8,81.7 157.5,81.7 206.2,418.3 255.0,418.3 303.8,418.3 352.5,81.7 401.2,81.7 450.0,255.4 498.8,255.4 547.5,255.4 596.2,60.0 645.0,60.0 693.8,81.7 742.5,81.7 791.2,81.7 840.0,60.0" fill="none" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<line x1="680" y1="70" x2="704" y2="70" stroke="#2f6f4f" stroke-width="2"/>
|
||||||
|
<text x="710" y="74" font-size="11" fill="#333">beste Loesung</text>
|
||||||
|
<line x1="680" y1="88" x2="704" y2="88" stroke="#c08a2d" stroke-width="2"/>
|
||||||
|
<text x="710" y="92" font-size="11" fill="#333">Durchschnitt</text>
|
||||||
|
<line x1="680" y1="106" x2="704" y2="106" stroke="#a03030" stroke-width="2"/>
|
||||||
|
<text x="710" y="110" font-size="11" fill="#333">schlechteste Loesung</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,17 @@
|
|||||||
|
Bloedkopf, Bestelli, = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Bloedkopf, Bestelli, = Hof 1, Tisch 3, Nummer 3
|
||||||
|
Bloedkopf, Bestelli, = Hof 1, Tisch 3, Nummer 4
|
||||||
|
Brandt, Willi, Dr. = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Bruegge, Heinz, = Hof 1, Tisch 5, Nummer 5
|
||||||
|
Dietrich, Marlene, = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Emmerlich, Walter, = Hof 1, Tisch 4, Nummer 3
|
||||||
|
Frenzen, Heinz Harald, = Hof 1, Tisch 4, Nummer 4
|
||||||
|
Hoehn, Bernd Robert, Professor = Hof 1, Tisch 1, Nummer 4
|
||||||
|
Junke, Harald, = Hof 1, Tisch 2, Nummer 2
|
||||||
|
K, Hubert, = Hof 1, Tisch 5, Nummer 4
|
||||||
|
Leone, Sergio, = Hof 1, Tisch 2, Nummer 4
|
||||||
|
Mueller, Magnus, Professor = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Ruehmann, Heinz, = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Schumacher, Michael, = Hof 1, Tisch 2, Nummer 3
|
||||||
|
Schumacher, Ralf, = Hof 1, Tisch 4, Nummer 5
|
||||||
|
Stangl, Michael, Dipl. Ing. = Hof 1, Tisch 1, Nummer 3
|
||||||
|
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="504.572" height="108.914" viewBox="0 0 504.572 108.914">
|
||||||
|
<rect width="100%" height="100%" fill="white"/>
|
||||||
|
<circle cx="54.4572" cy="54.4572" r="37.242" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="54.4572" cy="39.2151" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="67.6572" cy="62.0782" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="41.2572" cy="62.0782" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="54.4572" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="54.4572" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
|
||||||
|
<circle cx="153.372" cy="54.4572" r="44.4572" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="153.372" cy="32" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="172.82" cy="65.6858" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="133.923" cy="65.6858" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="153.372" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="153.372" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
|
||||||
|
<circle cx="252.286" cy="54.4572" r="37.242" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="252.286" cy="39.2151" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="265.486" cy="62.0782" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="239.086" cy="62.0782" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="252.286" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="252.286" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
|
||||||
|
<circle cx="351.2" cy="54.4572" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="351.2" cy="35.7896" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="369.868" cy="54.4572" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="351.2" cy="73.1248" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="332.533" cy="54.4572" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="351.2" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="351.2" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
|
||||||
|
<circle cx="450.115" cy="54.4572" r="40.6676" fill="white" stroke="black" stroke-width="1.5"/>
|
||||||
|
<circle cx="450.115" cy="35.7896" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="468.782" cy="54.4572" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="450.115" cy="73.1248" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="431.447" cy="54.4572" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
||||||
|
<circle cx="450.115" cy="54.4572" r="12" fill="white" fill-opacity="0.75"/>
|
||||||
|
<text x="450.115" y="54.4572" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">5</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.2 KiB |
@@ -0,0 +1,27 @@
|
|||||||
|
[1]
|
||||||
|
Professor Magnus Mueller = Hof 1, Tisch 1, Nummer 1
|
||||||
|
Dipl. Ing. Michael Stangl = Hof 1, Tisch 1, Nummer 2
|
||||||
|
Professor Bernd Robert Hoehn = Hof 1, Tisch 1, Nummer 3
|
||||||
|
|
||||||
|
[2]
|
||||||
|
Harald Junke = Hof 1, Tisch 2, Nummer 1
|
||||||
|
Michael Schumacher = Hof 1, Tisch 2, Nummer 2
|
||||||
|
Sergio Leone = Hof 1, Tisch 2, Nummer 3
|
||||||
|
|
||||||
|
[3]
|
||||||
|
Bestelli Bloedkopf = Hof 1, Tisch 3, Nummer 1
|
||||||
|
Bestelli Bloedkopf = Hof 1, Tisch 3, Nummer 2
|
||||||
|
Bestelli Bloedkopf = Hof 1, Tisch 3, Nummer 3
|
||||||
|
|
||||||
|
[4]
|
||||||
|
Dr. Willi Brandt = Hof 1, Tisch 4, Nummer 1
|
||||||
|
Walter Emmerlich = Hof 1, Tisch 4, Nummer 2
|
||||||
|
Heinz Harald Frenzen = Hof 1, Tisch 4, Nummer 3
|
||||||
|
Ralf Schumacher = Hof 1, Tisch 4, Nummer 4
|
||||||
|
|
||||||
|
[5]
|
||||||
|
Heinz Ruehmann = Hof 1, Tisch 5, Nummer 1
|
||||||
|
Marlene Dietrich = Hof 1, Tisch 5, Nummer 2
|
||||||
|
Hubert K = Hof 1, Tisch 5, Nummer 3
|
||||||
|
Heinz Bruegge = Hof 1, Tisch 5, Nummer 4
|
||||||
|
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"gruppen": [
|
||||||
|
{
|
||||||
|
"name": "einfache Gruppe aus drei Personen\n\t mit festem Wunsch fuer einen Tisch",
|
||||||
|
"tisch": 1,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Michael",
|
||||||
|
"nachname": "Stangl",
|
||||||
|
"titel": "Dipl. Ing."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Magnus",
|
||||||
|
"nachname": "Mueller",
|
||||||
|
"titel": "Professor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Bernd Robert",
|
||||||
|
"nachname": "Hoehn",
|
||||||
|
"titel": "Professor"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "einfache Gruppe aus zwei Personen",
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Heinz",
|
||||||
|
"nachname": "Bruegge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Hubert",
|
||||||
|
"nachname": "K"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Heinz",
|
||||||
|
"nachname": "Ruehmann"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Marlene",
|
||||||
|
"nachname": "Dietrich"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Sergio",
|
||||||
|
"nachname": "Leone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Walter",
|
||||||
|
"nachname": "Emmerlich"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Harald",
|
||||||
|
"nachname": "Junke"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Willi",
|
||||||
|
"nachname": "Brandt",
|
||||||
|
"titel": "Dr."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Michael",
|
||||||
|
"nachname": "Schumacher"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Ralf",
|
||||||
|
"nachname": "Schumacher"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vorname": "Heinz Harald",
|
||||||
|
"nachname": "Frenzen"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Gruppe aus drei anonymen Personen",
|
||||||
|
"anzahl": 3,
|
||||||
|
"personen": [
|
||||||
|
{
|
||||||
|
"vorname": "Bestelli",
|
||||||
|
"nachname": "Bloedkopf"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
<Bestellung>
|
|
||||||
|
|
||||||
<!-- einfache Gruppe aus drei Personen
|
|
||||||
mit festem Wunsch fuer einen Tisch-->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Michael</Vorname>
|
|
||||||
<Nachname>Stangl</Nachname>
|
|
||||||
<Titel>Dipl. Ing.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Magnus</Vorname>
|
|
||||||
<Nachname>Mueller</Nachname>
|
|
||||||
<Titel>Professor</Titel>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Bernd Robert</Vorname>
|
|
||||||
<Nachname>Hoehn</Nachname>
|
|
||||||
<Titel>Professor</Titel>
|
|
||||||
</Person>
|
|
||||||
<Tisch>1</Tisch>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!-- einfache Gruppe aus zwei Personen -->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Heinz</Vorname>
|
|
||||||
<Nachname>Bruegge</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Hubert</Vorname>
|
|
||||||
<Nachname>K</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Heinz</Vorname>
|
|
||||||
<Nachname>Ruehmann</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Marlene</Vorname>
|
|
||||||
<Nachname>Dietrich</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Sergio</Vorname>
|
|
||||||
<Nachname>Leone</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Walter</Vorname>
|
|
||||||
<Nachname>Emmerlich</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Harald</Vorname>
|
|
||||||
<Nachname>Junke</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Willi</Vorname>
|
|
||||||
<Nachname>Brandt</Nachname>
|
|
||||||
<Titel>Dr.</Titel>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Michael</Vorname>
|
|
||||||
<Nachname>Schumacher</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Ralf</Vorname>
|
|
||||||
<Nachname>Schumacher</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Heinz Harald</Vorname>
|
|
||||||
<Nachname>Frenzen</Nachname>
|
|
||||||
</Person>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
<!--Gruppe aus drei anonymen Personen-->
|
|
||||||
<Gruppe>
|
|
||||||
<Person>
|
|
||||||
<Vorname>Bestelli</Vorname>
|
|
||||||
<Nachname>Bloedkopf</Nachname>
|
|
||||||
</Person>
|
|
||||||
<Anzahl>3</Anzahl>
|
|
||||||
</Gruppe>
|
|
||||||
|
|
||||||
</Bestellung>
|
|
||||||
|
|
||||||
|
|
||||||