From 85dab4b6251eb9f548f9ef42b9c95154cc945fbc Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 31 Oct 2026 15:55:14 +0000 Subject: [PATCH] Web 0.14.20: Bild mit Papier und Stift im Schreibtischtest (L7) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Ugz28X1RBduq7uP6sxyG18 --- CHANGELOG.md | 1 + .../bilder/l07-schreibtischtest-de.svg | 52 + .../bilder/l07-schreibtischtest-en.svg | 52 + .../bilder/l07-schreibtischtest-pt.svg | 52 + .../de/07-simulation-und-schreibtischtest.md | 4 + .../en/07-simulation-und-schreibtischtest.md | 4 + .../pt/07-simulation-und-schreibtischtest.md | 4 + web/package-lock.json | 4 +- web/package.json | 2 +- ...lowApp-BDM1A5Y7.js => flowApp-DuhVJmuY.js} | 4 +- .../{index-ZRE4Fn8P.js => index-SkWXk0au.js} | 1346 +++++++++-------- ...tApp-CWZwh-rL.js => objectApp-DHliduJI.js} | 8 +- ...Zip-BdUYBYsm.js => projectZip-Cfe6zcKe.js} | 2 +- ...obot3d-OZU43-FL.js => robot3d-BOvRTAxq.js} | 2 +- website/app/index.html | 2 +- 15 files changed, 860 insertions(+), 679 deletions(-) create mode 100644 web/lessons/bilder/l07-schreibtischtest-de.svg create mode 100644 web/lessons/bilder/l07-schreibtischtest-en.svg create mode 100644 web/lessons/bilder/l07-schreibtischtest-pt.svg rename website/app/assets/{flowApp-BDM1A5Y7.js => flowApp-DuhVJmuY.js} (99%) rename website/app/assets/{index-ZRE4Fn8P.js => index-SkWXk0au.js} (92%) rename website/app/assets/{objectApp-CWZwh-rL.js => objectApp-DHliduJI.js} (99%) rename website/app/assets/{projectZip-BdUYBYsm.js => projectZip-Cfe6zcKe.js} (99%) rename website/app/assets/{robot3d-OZU43-FL.js => robot3d-BOvRTAxq.js} (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1617a07e..5fdbb9a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ The format is loosely inspired by Keep a Changelog. ### Added +- **Web 0.14.20, picture for the desk check:** lesson 7, step „Der Schreibtischtest“, shows a hand-drawn sheet of paper with the swap trace table (a, b, hilf/temp/aux) and a pencil, own SVGs `l07-schreibtischtest-{de,en,pt}.svg` (de/en/pt). - **Web 0.14.19, more exercises for both areas:** „Steckbrief in Java“ (L4), „Kinokarten in Java“ (L5), „Ticketpreis“ (L20), „Gerade Zahlen“ and „Wählen ab 16“ (L21) now use `bereich: beide`, so „Im Editor öffnen“ shows Struktogramm and Code together. Exercises without `code: java` keep the chosen language in Code (Python or JavaScript in L21) instead of switching to Java (de/en/pt). - **Web 0.14.14, rename a variable (refactoring):** right-click a variable name in the Code area (or press F2) and choose „Variable umbenennen …“; in the structure chart right-click an element, press F2 or use the new button in the object inspector. A small window shows the name, how often it is used and the new name. Every place with exactly the same spelling changes in the code and in the structure chart in one undo step (`zahl` and `Zahl` stay separate, matching the case-sensitivity exercises); text in "…", characters, comments and fields after a dot (`feld.length`) stay. Invalid names and Java keywords are refused; if the new name already exists, a warning says both would become one variable (all 21 languages). - **Web 0.14.13, no robot emoji in the world chooser:** the button „🤖 VisuBot“ in the gear menu and the start dialog is now just „VisuBot“, like the other worlds (Holger's wish). diff --git a/web/lessons/bilder/l07-schreibtischtest-de.svg b/web/lessons/bilder/l07-schreibtischtest-de.svg new file mode 100644 index 00000000..8cd90476 --- /dev/null +++ b/web/lessons/bilder/l07-schreibtischtest-de.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +a +b +hilf +3 +– +– +3 +5 +– +3 +5 +3 +5 +5 +3 +5 +3 +3 + + + + + + + + + + + + + + + + + diff --git a/web/lessons/bilder/l07-schreibtischtest-en.svg b/web/lessons/bilder/l07-schreibtischtest-en.svg new file mode 100644 index 00000000..ec89eb8e --- /dev/null +++ b/web/lessons/bilder/l07-schreibtischtest-en.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +a +b +temp +3 +– +– +3 +5 +– +3 +5 +3 +5 +5 +3 +5 +3 +3 + + + + + + + + + + + + + + + + + diff --git a/web/lessons/bilder/l07-schreibtischtest-pt.svg b/web/lessons/bilder/l07-schreibtischtest-pt.svg new file mode 100644 index 00000000..b60eafe9 --- /dev/null +++ b/web/lessons/bilder/l07-schreibtischtest-pt.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +a +b +aux +3 +– +– +3 +5 +– +3 +5 +3 +5 +5 +3 +5 +3 +3 + + + + + + + + + + + + + + + + + diff --git a/web/lessons/de/07-simulation-und-schreibtischtest.md b/web/lessons/de/07-simulation-und-schreibtischtest.md index df5ea0cb..2f0ee800 100644 --- a/web/lessons/de/07-simulation-und-schreibtischtest.md +++ b/web/lessons/de/07-simulation-und-schreibtischtest.md @@ -50,6 +50,10 @@ Am Ende erscheint **Simulation beendet**. Geht etwas schief, bleibt die Simulati Beim **Schreibtischtest** spielst du selbst den Computer. Du gehst das Struktogramm mit Stift und Papier durch und schreibst nach jedem Schritt die Werte der Variablen auf. Am besten machst du eine Tabelle: eine Spalte für den Schritt, eine für jede Variable und eine für die Ausgabe. +::: grafik l07-schreibtischtest-de.svg +Ein Blatt Papier und ein Stift genügen: Du schreibst nach jedem Schritt die neuen Werte in eine neue Zeile. +::: + Für das Diagramm oben sieht die Tabelle so aus: | Schritt | a | b | hilf | Ausgabe | diff --git a/web/lessons/en/07-simulation-und-schreibtischtest.md b/web/lessons/en/07-simulation-und-schreibtischtest.md index b7ffc9e2..6ef19a48 100644 --- a/web/lessons/en/07-simulation-und-schreibtischtest.md +++ b/web/lessons/en/07-simulation-und-schreibtischtest.md @@ -50,6 +50,10 @@ At the end, **Simulation finished.** appears. If something goes wrong, the simul In a **desk check** you play the computer yourself. You go through the structure chart with pen and paper and write down the values of the variables after every step. It is best to make a table: one column for the step, one for each variable and one for the output. +::: grafik l07-schreibtischtest-en.svg +A sheet of paper and a pen are all you need: after each step you write the new values in a new row. +::: + For the diagram above, the table looks like this: | Step | a | b | temp | Output | diff --git a/web/lessons/pt/07-simulation-und-schreibtischtest.md b/web/lessons/pt/07-simulation-und-schreibtischtest.md index e6aced26..187fd9a6 100644 --- a/web/lessons/pt/07-simulation-und-schreibtischtest.md +++ b/web/lessons/pt/07-simulation-und-schreibtischtest.md @@ -50,6 +50,10 @@ No fim aparece **Simulação terminada.** Se algo correr mal, a simulação para Num **teste de secretária** és tu o computador. Percorres o estrutograma com papel e caneta e anotas os valores das variáveis depois de cada passo. O melhor é fazer uma tabela: uma coluna para o passo, uma para cada variável e uma para a saída. +::: grafik l07-schreibtischtest-pt.svg +Basta uma folha de papel e uma caneta: depois de cada passo escreves os novos valores numa nova linha. +::: + Para o diagrama de cima, a tabela fica assim: | Passo | a | b | aux | Saída | diff --git a/web/package-lock.json b/web/package-lock.json index 272b4a7b..ef0fab8b 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "visustruct-web", - "version": "0.14.19", + "version": "0.14.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "visustruct-web", - "version": "0.14.19", + "version": "0.14.20", "dependencies": { "@codemirror/autocomplete": "^6.20.4", "@codemirror/commands": "^6.11.1", diff --git a/web/package.json b/web/package.json index 23674f4a..cce51186 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "visustruct-web", "private": true, - "version": "0.14.19", + "version": "0.14.20", "type": "module", "scripts": { "dev": "vite", diff --git a/website/app/assets/flowApp-BDM1A5Y7.js b/website/app/assets/flowApp-DuhVJmuY.js similarity index 99% rename from website/app/assets/flowApp-BDM1A5Y7.js rename to website/app/assets/flowApp-DuhVJmuY.js index 55ecc6ea..cf38c5a1 100644 --- a/website/app/assets/flowApp-BDM1A5Y7.js +++ b/website/app/assets/flowApp-DuhVJmuY.js @@ -1,4 +1,4 @@ -var dt=Object.defineProperty;var lt=(n,t,e)=>t in n?dt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>lt(n,typeof t!="symbol"?t+"":t,e);import{t as h,g as ct,i as I,w as ht,n as ut,f as ft,o as G,q as pt,u as gt,v as wt,x as vt,y as mt,l as xt}from"./index-ZRE4Fn8P.js";const et=["start","anweisung","ein","verzweigung","unterprogramm","ende"],m=20,st={start:"#d1f2d9",ende:"#d1f2d9",anweisung:"#e5f0ff",ein:"#f2e6ff",verzweigung:"#fff4d6",unterprogramm:"#e5f0ff"},H=16,yt=170;function bt(n,t,e){const i=[];for(const s of n.split(` +var dt=Object.defineProperty;var lt=(n,t,e)=>t in n?dt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>lt(n,typeof t!="symbol"?t+"":t,e);import{t as h,g as ct,i as I,w as ht,n as ut,f as ft,o as G,q as pt,u as gt,v as wt,x as vt,y as mt,l as xt}from"./index-SkWXk0au.js";const et=["start","anweisung","ein","verzweigung","unterprogramm","ende"],m=20,st={start:"#d1f2d9",ende:"#d1f2d9",anweisung:"#e5f0ff",ein:"#f2e6ff",verzweigung:"#fff4d6",unterprogramm:"#e5f0ff"},H=16,yt=170;function bt(n,t,e){const i=[];for(const s of n.split(` `)){let o="";for(const r of s.split(/\s+/).filter(Boolean)){const a=o?`${o} ${r}`:r;o&&e(a)>t?(i.push(o),o=r):o=a}i.push(o)}return i.length?i:[""]}const q=n=>Math.round(n/m)*m;function C(n,t){const e=bt(n.text,yt,t),i=Math.max(0,...e.map(t)),s=e.length*H;let o,r;if(n.shape==="verzweigung")o=Math.max(140,i*1.7+30),r=Math.max(80,s*1.8+24);else{const a=n.shape==="ein"?44:n.shape==="unterprogramm"?40:n.shape==="anweisung"?24:36;o=Math.max(n.shape==="start"||n.shape==="ende"?100:120,i+a),r=Math.max(40,s+18)}return{x:n.x,y:n.y,w:Math.ceil(o/m)*m,h:Math.ceil(r/m)*m,lines:e}}function V(n){return n==="ende"?[]:n==="verzweigung"?["ja","nein"]:["out"]}const D=n=>n!=="start";function P(n,t,e){var s;if(e==="out")return"bottom";const i=((s=n.yesRight)==null?void 0:s.includes(t.id))??!1;return e==="ja"===i?"right":"bottom"}function F(n,t){return t==="bottom"?[n.x,n.y+n.h/2]:[n.x+n.w/2,n.y]}const _t=n=>[n.x,n.y-n.h/2];function $t(n,t,e,i=0){const[s,o]=F(n,t),[r,a]=_t(e),d=m,u=Math.max(n.x+n.w/2,e.x+e.w/2)+d*(1.5+i);if(t==="bottom"){if(a>=o+d){if(s===r)return[[s,o],[r,a]];const l=o+d;return[[s,o],[s,l],[r,l],[r,a]]}return[[s,o],[s,o+d],[u,o+d],[u,a-d],[r,a-d],[r,a]]}const p=e.x-e.w/2;if(p>=s+d&&Math.abs(e.y-o)=o+d){if(r>=s+d)return[[s,o],[r,o],[r,a]];const l=s+d;return[[s,o],[l,o],[l,a-d],[r,a-d],[r,a]]}const f=Math.max(s+d,u);return[[s,o],[f,o],[f,a-d],[r,a-d],[r,a]]}function nt(n=""){return{title:n,nodes:[],edges:[]}}function it(n,t){const e=new Set([...n.nodes.map(s=>s.id),...n.edges.map(s=>s.id)]);let i=1;for(;e.has(`${t}${i}`);)i++;return`${t}${i}`}function O(n,t,e,i,s){const o=it(n,"n");return{doc:{...n,nodes:[...n.nodes,{id:o,shape:t,x:q(e),y:q(i),text:s}]},id:o}}function J(n,t,e,i){return{...n,nodes:n.nodes.map(s=>s.id===t?{...s,x:Math.max(m*4,q(e)),y:Math.max(m*2,q(i))}:s)}}function Lt(n,t,e){return{...n,nodes:n.nodes.map(i=>i.id===t?{...i,text:e}:i)}}function _(n,t,e,i){const s=n.nodes.find(a=>a.id===t),o=n.nodes.find(a=>a.id===i);if(!s||!o||t===i||!V(s.shape).includes(e)||!D(o.shape))return n;const r=n.edges.filter(a=>!(a.from===t&&a.port===e));return{...n,edges:[...r,{id:it(n,"e"),from:t,port:e,to:i}]}}function Et(n,t){return V(t.shape).find(e=>!n.edges.some(i=>i.from===t.id&&i.port===e))}function kt(n,t){var e;return{...n,nodes:n.nodes.filter(i=>i.id!==t),edges:n.edges.filter(i=>i.from!==t&&i.to!==t),yesRight:(e=n.yesRight)==null?void 0:e.filter(i=>i!==t)}}function St(n,t){return{...n,edges:n.edges.filter(e=>e.id!==t)}}function ot(n,t){const e=new Set(n.yesRight??[]);return e.has(t)?e.delete(t):e.add(t),{...n,yesRight:[...e]}}function b(n){return JSON.stringify({format:"visuflow",version:1,...n},null,2)}function W(n){let t;try{t=JSON.parse(n)}catch{return}if(!t||typeof t!="object")return;const e=t;if(!Array.isArray(e.nodes)||!Array.isArray(e.edges))return;const i=[];for(const o of e.nodes)!o||typeof o.id!="string"||!et.includes(o.shape)||!Number.isFinite(o.x)||!Number.isFinite(o.y)||i.some(r=>r.id===o.id)||i.push({id:o.id,shape:o.shape,x:o.x,y:o.y,text:typeof o.text=="string"?o.text:""});let s={title:typeof e.title=="string"?e.title:"",nodes:i,edges:[]};for(const o of e.edges)!o||typeof o.from!="string"||typeof o.to!="string"||typeof o.port!="string"||(s=_(s,o.from,o.port,o.to));return Array.isArray(e.yesRight)&&(s.yesRight=e.yesRight.filter(o=>typeof o=="string"&&i.some(r=>r.id===o))),s}const z="http://www.w3.org/2000/svg",X="visuflow.doc",Mt=100,Y=14,rt=`${Y}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,T="#1c1c1e",w=n=>n.replace(/[&<>"]/g,t=>({"&":"&","<":"<",">":">",'"':"""})[t]);function At(n){try{return localStorage.getItem(n)}catch{return null}}function Z(n,t){try{localStorage.setItem(n,t)}catch{}}function It(){const n=xt(),t=n==="pt-PT"?"pt":n==="de"?"de":"en";return`${/\/app\/(index\.html)?$/.test(location.pathname)?"../":"https://visustruct.org/"}${t}/index.html`}function j(n,t,e){const i=URL.createObjectURL(new Blob([t],{type:e})),s=document.createElement("a");s.href=i,s.download=n,s.click(),setTimeout(()=>URL.revokeObjectURL(i),1e3)}function v(n,t={}){const e=document.createElementNS(z,n);for(const[i,s]of Object.entries(t))e.setAttribute(i,String(s));return e}let N;function R(n){return N===void 0&&(N=document.createElement("canvas").getContext("2d")),N?(N.font=rt,N.measureText(n).width):n.length*Y*.55}const Ct=n=>h(`web_visuflow_shape_${n}`),B=n=>h(`web_visuflow_text_${n}`);function at(n,t){const e=t.x-t.w/2,i=t.x+t.w/2,s=t.y-t.h/2,o=t.y+t.h/2;return n==="verzweigung"?v("path",{d:`M${t.x} ${s} L${i} ${t.y} L${t.x} ${o} L${e} ${t.y} Z`}):n==="ein"?v("path",{d:`M${e+14} ${s} L${i} ${s} L${i-14} ${o} L${e} ${o} Z`}):n==="unterprogramm"?v("path",{d:`M${e} ${s} H${i} V${o} H${e} Z M${e+10} ${s} V${o} M${i-10} ${s} V${o}`}):v("rect",{x:e,y:s,width:t.w,height:t.h,rx:n==="anweisung"?2:t.h/2})}function Rt(n){const t=v("text",{"text-anchor":"middle","font-size":Y,fill:T});return n.lines.forEach((e,i)=>{const s=v("tspan",{x:n.x,y:n.y+5+(i-(n.lines.length-1)/2)*H});s.textContent=e,t.append(s)}),t}function Q(n){const t=v("svg",{viewBox:"0 0 64 36",width:64,height:36,"aria-hidden":"true"}),e=at(n,{x:32,y:18,w:n==="verzweigung"?54:56,h:n==="verzweigung"?32:26});return e.setAttribute("fill",st[n]),e.setAttribute("stroke",T),e.setAttribute("stroke-width","1.5"),t.append(e),t.outerHTML}function tt(){let n=nt(h("web_visuflow_example_title"));const t=[],e=(p,f,l,c)=>{const g=O(n,p,f,l,c);n=g.doc,t.push(g.id)};e("start",240,60,B("start")),e("anweisung",240,160,h("web_visuflow_example_water")),e("anweisung",240,260,h("web_visuflow_example_bag")),e("verzweigung",240,380,h("web_visuflow_example_hot")),e("anweisung",480,380,h("web_visuflow_example_wait")),e("anweisung",240,500,h("web_visuflow_example_drink")),e("ende",240,600,B("ende"));const[i,s,o,r,a,d,u]=t;return n=_(n,i,"out",s),n=_(n,s,"out",o),n=_(n,o,"out",r),n=ot(n,r),n=_(n,r,"ja",a),n=_(n,a,"out",r),n=_(n,r,"nein",d),n=_(n,d,"out",u),n}function Tt(){return O(nt(),"start",240,60,B("start")).doc}class Pt{constructor(t){y(this,"shell");y(this,"svg");y(this,"scroller");y(this,"status");y(this,"titleInput");y(this,"doc");y(this,"selection");y(this,"history",[]);y(this,"future",[]);y(this,"editor");y(this,"dragLine");document.documentElement.classList.add("visuflow-theme"),history.replaceState(history.state,"",`${location.pathname}?visuflow${location.hash}`),this.doc=W(At(X)??"")??tt(),this.shell=document.createElement("div"),this.shell.className="shell visuflow",t.replaceWith(this.shell),this.build(),this.render(),window.addEventListener("keydown",e=>this.onKey(e))}build(){const t=(l,c,g,x=c)=>``,e=et.map(l=>``).join("");this.shell.innerHTML=`
VisuFlow ${w(h("web_visuflow_subtitle"))} @@ -28,7 +28,7 @@ var dt=Object.defineProperty;var lt=(n,t,e)=>t in n?dt(n,t,{enumerable:!0,config ${ht()}
- ${w(h("web_about_version_fmt").replace("%@","0.14.19"))} + ${w(h("web_about_version_fmt").replace("%@","0.14.20"))}
diff --git a/website/app/assets/index-ZRE4Fn8P.js b/website/app/assets/index-SkWXk0au.js similarity index 92% rename from website/app/assets/index-ZRE4Fn8P.js rename to website/app/assets/index-SkWXk0au.js index 0b1105a3..df870e3b 100644 --- a/website/app/assets/index-ZRE4Fn8P.js +++ b/website/app/assets/index-SkWXk0au.js @@ -1,4 +1,4 @@ -var k2=Object.defineProperty;var S2=(i,e,t)=>e in i?k2(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var y=(i,e,t)=>S2(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(a){if(a.ep)return;a.ep=!0;const s=t(a);fetch(a.href,s)}})();const T2="modulepreload",_2=function(i,e){return new URL(i,e).href},nu={},K=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let r=function(m){return Promise.all(m.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const o=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=r(t.map(m=>{if(m=_2(m,n),m in nu)return;nu[m]=!0;const c=m.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(!!n)for(let f=o.length-1;f>=0;f--){const x=o[f];if(x.href===m&&(!c||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${d}`))return;const g=document.createElement("link");if(g.rel=c?"stylesheet":T2,c||(g.as="script"),g.crossOrigin="",g.href=m,u&&g.setAttribute("nonce",u),document.head.appendChild(g),c)return new Promise((f,x)=>{g.addEventListener("load",f),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return a.then(r=>{for(const o of r||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})};var T=(i=>(i[i.anweisung=0]="anweisung",i[i.verzweigung=1]="verzweigung",i[i.fallauswahl=2]="fallauswahl",i[i.forSchleife=3]="forSchleife",i[i.whileSchleife=4]="whileSchleife",i[i.doUntilSchleife=5]="doUntilSchleife",i[i.endlosschleife=6]="endlosschleife",i[i.aussprung=7]="aussprung",i[i.aufruf=8]="aufruf",i[i.leerElement=9]="leerElement",i))(T||{});function j2(i){return i===3||i===4||i===5||i===6}function C2(i){return i===1||i===2}function je(i,e={}){return{type:i,zoomX:0,zoomY:0,textLines:[""],...e}}function A2(i){const e=i.textLines;if(!e.every(t=>t.trim()===""))switch(i.type){case T.forSchleife:return e.length<=1?e:[O2(e)];case T.verzweigung:return ea("if",e);case T.whileSchleife:return ea("while",e);case T.doUntilSchleife:return ea("while",P2(e));case T.fallauswahl:return ea("switch",e);default:return e}}function P2(i){if(i.length===0)return i;const e=i[0].trim(),t=e.toLowerCase(),n=[...i];if(t==="until")n[0]="";else if(t.startsWith("until "))n[0]=e.slice(6).trim();else if(t.startsWith("until("))n[0]=e.slice(5);else return i;return n}function iu(i){const e=new Set(["if","for","while","until","switch"]),t=["input:","output:","print:"],n=i.trim(),a=n.toLowerCase();for(const o of t){if(a===o)return{keyword:n,rest:""};if(a.startsWith(o+" "))return{keyword:n.slice(0,o.length),rest:n.slice(o.length).trim()}}const s=n.indexOf(" ");if(s<0)return;const r=n.slice(0,s);if(e.has(r.toLowerCase()))return{keyword:r,rest:n.slice(s+1).trim()}}function ea(i,e){if(e.length===0)return e;const t=e[0].trim(),n=t.toLowerCase();if(n===i||n.startsWith(i+" "))return e;const a=[...e];return a[0]=i+" "+t,a}function O2(i){let e=[...i];for(;e.length<3;)e.push("");e=e.slice(0,3);const t=a=>{let s=a.trim();for(;s.endsWith(";");)s=s.slice(0,-1).trim();return s},n=e.map(t).join("; ").trim();return n===""?"for":"for "+n}const Qd={[T.anweisung]:"Anweisung",[T.verzweigung]:"Bedingung",[T.fallauswahl]:"Fallauswahl",[T.forSchleife]:"for 0 < i < anzahl",[T.whileSchleife]:"while …",[T.doUntilSchleife]:"while …",[T.endlosschleife]:"endless",[T.aussprung]:"break",[T.aufruf]:"Aufruf()",[T.leerElement]:"ø"};function D2(i){Object.assign(Qd,i)}function Nl(i){return A2(i)??[Qd[i.type]]}class We extends Error{}const xn=i=>structuredClone(i);function nn(){return je(T.anweisung,{textLines:["ø"]})}function M2(){return{caption:"",elements:[nn()]}}function Fl(i){if(i.type===T.leerElement)return!0;if(i.type===T.anweisung){const e=i.textLines;return e.length===0||e.length===1&&e[0]==="ø"}return!1}function kn(i,e){const t=vt(i,e);return t!==void 0&&Fl(t)}function Gi(i,e){if(e.length===0)throw new We("Invalid element path.");const[t,...n]=e;if(t<0||t>=i.length)throw new We("Invalid element path.");if(n.length===0)return{list:i,index:t};const[a,...s]=n;if(s.length===0)throw new We("Invalid element path.");return Gi(Ud(i[t],a),s)}function Ud(i,e){if(j2(i.type)){if(e!==0||!i.loopBody)throw new We("Invalid element path.");return i.loopBody}if(C2(i.type)){if(!i.cases||e<0||e>=i.cases.length)throw new We("Invalid element path.");return i.cases[e].elements}throw new We("Invalid element path.")}function Dt(i,e){const{list:t,index:n}=Gi(i.elements,e);return t[n]}function vt(i,e){try{return Dt(i,e)}catch{return}}function Dn(i,e,t){const n=xn(i),{list:a,index:s}=Gi(n.elements,e);return a[s]=xn(t),n}function H1(i,e,t){const n=xn(Dt(i,e));return n.textLines=t.length===0?[""]:t,Dn(i,e,n)}function xr(i,e){return e.length===0?!1:e.length===1&&i.elements.length===1?!kn(i,e):vt(i,e)!==void 0}function ki(i,e){const t=xn(i),{list:n,index:a}=Gi(t.elements,e);if(e.length===1&&n.length===1){if(Fl(n[0]))throw new We("The last root element cannot be deleted.");return n[0]=nn(),t}return n.splice(a,1),e.length>1&&n.length===0&&n.push(nn()),t}function li(i,e,t,n){const a=xn(i);let s;if(e.length===0)s=a.elements;else{const r=e.slice(0,-1),o=e[e.length-1],{list:l,index:u}=Gi(a.elements,r);s=Ud(l[u],o)}return s.splice(Math.min(Math.max(0,t),s.length),0,xn(n)),a}function $d(i,e,t){if(t.length===0)throw new We("Invalid element path.");return li(i,t.slice(0,-1),t[t.length-1],e)}function fo(i,e,t){if(t.length===0)throw new We("Invalid element path.");return li(i,t.slice(0,-1),t[t.length-1]+1,e)}function Jl(i,e){return i.lengthe[n]===t)}function Rl(i,e){if(e.length===0)return i;const t=e[e.length-1],n=e.slice(0,-1);if(i.length<=n.length||!n.every((r,o)=>i[o]===r))return i;const a=n.length;if(i[a]<=t)return i;const s=[...i];return s[a]-=1,s}const Gl=(i,e)=>i.length===e.length&&i.every((t,n)=>t===e[n]);function B2(i,e,t){if(Gl(e,t))return i;if(Jl(e,t))throw new We("Invalid element path.");const n=Dt(i,e),a=ki(i,e);return $d(a,n,Rl(t,e))}function Z2(i,e,t){if(Gl(e,t))return i;if(Jl(e,t))throw new We("Invalid element path.");const n=Dt(i,e),a=ki(i,e);return fo(a,n,Rl(t,e))}function L2(i,e,t){if(!kn(i,t))throw new We("Invalid element path.");if(Gl(e,t))return i;if(Jl(e,t))throw new We("Invalid element path.");const n=Dt(i,e),a=ki(i,e);return Dn(a,Rl(t,e),n)}function W2(i,e){const t=xn(Dt(i,e)),n=t.cases;if(t.type!==T.fallauswahl||!n||n.length===0)throw new We("Invalid element path.");const a=n[n.length-1].name.toLowerCase()==="default",s=a?n.length-1:n.length,r=String(a?n.length:n.length+1);return n.splice(s,0,{name:r,elements:[nn()]}),{doc:Dn(i,e,t),path:[...e,s,0]}}function E2(i,e,t){const n=xn(Dt(i,e)),a=n.cases;if(n.type!==T.fallauswahl||!a)throw new We("Invalid element path.");if(a.length<=2)throw new We("A switch needs at least two cases.");if(t<0||t>=a.length)throw new We("Invalid element path.");a.splice(t,1);const s=Math.min(t,a.length-1);return{doc:Dn(i,e,n),path:[...e,s,0]}}function N2(i,e,t,n){const a=xn(Dt(i,e)),s=a.cases;if(a.type!==T.fallauswahl||!s)throw new We("Invalid element path.");if(t<0||t>=s.length)throw new We("Invalid element path.");const r=n.trim();if(r==="")throw new We("Invalid element path.");return s[t].name=r,Dn(i,e,a)}function F2(i,e){var t;if(!(!i||i.length===0))for(let n=i.length;n>=1;n--){const a=i.slice(0,n);if(((t=vt(e,a))==null?void 0:t.type)===T.fallauswahl)return a}}function J2(i,e){if(!(!i||i.length<=e.length))return i[e.length]}function br(i,e){if(e.elements.length!==0)return!i||!vt(e,i)?[0]:i}const Yd=i=>i!==void 0&&/\s/.test(i);function ts(i){const e=i.trim().toLowerCase();return e.startsWith("input:")?"input":e.startsWith("output:")||e.startsWith("print:")?"output":"statement"}function R2(i){const e=i.trim(),t=e.toLowerCase();return t.startsWith("input:")?e.slice(6).trim():t.startsWith("output:")?e.slice(7).trim():t.startsWith("print:")?e.slice(6).trim():i}function au(i,e){const t=e.trim();return t===""?`${i} `:`${i} ${t}`}function G2(i,e){const t=R2(e);switch(i){case"statement":return t;case"input":return au("input:",t);case"output":return au("output:",t)}}const Na=i=>Yd(i[0])?i.slice(1):i;function H2(i){const e=i.replace(/^\s+/,""),t=e.toLowerCase();return t.startsWith("input:")?Na(e.slice(6)):t.startsWith("output:")?Na(e.slice(7)):t.startsWith("print:")?Na(e.slice(6)):i}function su(i,e){const t=e.replace(/^\s+/,"");if(!t.toLowerCase().startsWith(i.toLowerCase()))return e;const n=t.slice(i.length);if(!(n===""||Yd(n[0])||n[0]==="("))return e;const a=Na(n);return a.startsWith("(")&&a.endsWith(")")&&a.length>=2?a.slice(1,-1):a}function ru(i,e){if(i==="input:"||i==="output:")return H2(e);const t=su(i,e);if(i==="while"&&t===e){const n=su("until",e);if(n!==e)return n}return t}function V2(i,e){return e===""?`${i} `:`${i} ${e}`}function Xd(i){return i.replace(/[“”„«»]/g,'"').replace(/[’‘‚´]/g,"'")}function ou(i){const e=i.length===0?[""]:i.slice(0,3);for(;e.length<3;)e.push("");return e}function q2(i){let e=Xd(i);for(;;){const t=e.trim();if(!t.endsWith(";"))return e;e=t.slice(0,-1).trim()}}const Vs='system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';function Q2(i,e){return`${e==="bold"?700:500} ${i}px ${Vs}`}const Kd=(i,e,t)=>[...i].length*e*(t==="bold"?.68:.62);function U2(){if(typeof document>"u"||!document.body)return;const i="http://www.w3.org/2000/svg",e=document.createElementNS(i,"svg");e.setAttribute("aria-hidden","true"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.style.cssText="position:absolute;left:-9999px;top:0;visibility:hidden;overflow:hidden";const t=document.createElementNS(i,"text");if(t.setAttribute("font-family",Vs),t.style.whiteSpace="pre",e.append(t),document.body.append(e),typeof t.getComputedTextLength!="function"||typeof t.getBBox!="function"){e.remove();return}if(t.textContent="Mg",t.setAttribute("font-size","20"),!(t.getComputedTextLength()>0)){e.remove();return}return t}let vr;function eh(){return vr===void 0&&(vr=U2()??null),vr??void 0}function th(i,e,t){i.setAttribute("font-size",String(e)),i.setAttribute("font-weight",t==="bold"?"700":"500")}function lu(i,e){const t=`${i}|${e}`;let n=uu.get(t);if(!n){const a=eh();if(n={ascent:i*.95,descent:i*.24},a){th(a,i,e),a.setAttribute("y","0"),a.textContent="Mg";const s=a.getBBox();s.height>0&&(n={ascent:-s.y,descent:s.height+s.y})}uu.set(t,n)}return n}const uu=new Map;function $2(){const i=eh();if(i){const n=new Map;return(a,s,r)=>{const o=`${s}|${r}|${a}`;let l=n.get(o);return l===void 0&&(th(i,s,r),i.textContent=a,l=a===""?0:i.getComputedTextLength(),n.size>2e3&&n.clear(),n.set(o,l)),l}}const e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null;if(!e)return Kd;const t=new Map;return(n,a,s)=>{const r=`${a}|${s}|${n}`;let o=t.get(r);return o===void 0&&(e.font=Q2(a,s),o=e.measureText(n).width,t.size>2e3&&t.clear(),t.set(r,o)),o}}const nh={fontSize:15,lineHeight:20,charWidth:7,baseHeaderExtra:20,minSidePadding:42,cellTextInsetY:15,doUntilDoLabelTopInset:2,doUntilFooterTopInset:6,doUntilFooterBottomInset:8};function Y2(i){return{...nh,fontSize:14,lineHeight:21,charWidth:5.5*(14/12),baseHeaderExtra:21,minSidePadding:40}}const ta=i=>i===T.forSchleife||i===T.whileSchleife||i===T.doUntilSchleife||i===T.endlosschleife,na=i=>i===T.fallauswahl||i===T.verzweigung;function ia(i,e,t,n=0){return{idPath:i,element:e,frame:t,headerBandHeight:n,topBandHeight:0,loopBodyLeadingInset:0,caseColumnFrames:[],children:[]}}function it(i){return{...i,frame:{...i.frame}}}class ih{constructor(e=nh,t=Kd){this.metrics=e,this.measure=t}layout(e,t={left:28,top:28}){const a=this.layoutList(e.elements,t.left,t.top,[]).map(l=>this.stretchLoopBodiesVertically(l));let s=0,r=0;const o=l=>{s=Math.max(s,l.frame.x+l.frame.width),r=Math.max(r,l.frame.y+l.frame.height),l.children.forEach(o)};return a.forEach(o),{canvasSize:{width:s+t.left,height:r+t.top},elements:a}}lineWidth(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"medium"))}lineWidthBold(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"bold"))}layoutList(e,t,n,a){let s=[],r=n;e.forEach((l,u)=>{const m=this.layoutElement(l,t,r,[...a,u]);s.push(m),r+=m.frame.height});const o=Math.max(0,...s.map(l=>l.frame.width));return o>0&&(s=s.map(l=>this.stretchNodeTreeToWidth(l,o))),s}stretchMultiwayNodeToWidth(e,t){const n=it(e),a=n.frame.width;if(!(a>0)||n.caseColumnFrames.length===0)return n;const s=t/a;n.frame.width=t;let r=n.frame.x;const o=n.caseColumnFrames.map(l=>{const u=l.width*s,m={x:r,y:l.y,width:u,height:l.height};return r+=u,m});return n.caseColumnFrames=o,n.dividerX=o.length>0?o[o.length-1].x:n.frame.x+t,n.columns&&n.columns.length===o.length&&(n.columns=n.columns.map((l,u)=>{const m=o[u];return l.map(c=>{const d=it(c);return d.frame.x=m.x,d.frame.width=m.width,this.stretchDescendantsWidths(d,m.width)})}),n.children=n.columns.flat()),n}stretchLoopChildren(e,t){const n=this.effectiveLoopBodyLeading(e),a=Math.max(0,t-n);e.children=e.children.map(s=>{const r=it(s);return r.frame.x=e.frame.x+n,r.frame.width=a,this.stretchDescendantsWidths(r,a)})}stretchNodeTreeToWidth(e,t){const n=it(e);return n.frame.width>0?na(n.element.type)&&n.caseColumnFrames.length>0?this.stretchMultiwayNodeToWidth(n,t):(n.frame.width=t,ta(n.element.type)?this.stretchLoopChildren(n,t):n.children=n.children.map(s=>this.stretchDescendantsWidths(s,t)),n):n}stretchDescendantsWidths(e,t){let n=it(e);return na(n.element.type)?n=this.stretchNodeTreeToWidth(n,t):ta(n.element.type)?(n.frame.width=t,this.stretchLoopChildren(n,t)):(n.frame.width=t,n.children=n.children.map(a=>this.stretchDescendantsWidths(a,t))),n}stretchLoopBodiesVertically(e){const t=it(e);if(t.columns&&t.columns.length>0)return t.columns=t.columns.map(s=>s.map(r=>this.stretchLoopBodiesVertically(r))),t.children=t.columns.flat(),t;t.children=t.children.map(s=>this.stretchLoopBodiesVertically(s));const n=s=>s===T.anweisung||s===T.leerElement||s===T.aufruf||s===T.aussprung||ta(s);let a;switch(t.element.type){case T.forSchleife:case T.whileSchleife:case T.endlosschleife:{const s=t.element.type===T.endlosschleife?40:0;a=t.frame.y+t.frame.height-s;break}case T.doUntilSchleife:a=t.frame.y+t.frame.height-t.headerBandHeight;break}if(a!==void 0&&t.children.length>0){const s=t.children.length-1;let r=it(t.children[s]);const o=a-(r.frame.y+r.frame.height);o>.5&&n(r.element.type)&&(r.frame.height+=o,r=this.stretchLoopBodiesVertically(r),t.children=[...t.children.slice(0,s),r])}return t}headerHeight(e){const t=this.metrics,n=Math.max(1,e.textLines.length);if(e.type===T.doUntilSchleife)return t.doUntilFooterTopInset+n*t.lineHeight+t.doUntilFooterBottomInset+e.zoomY;let a;switch(e.type){case T.fallauswahl:a=40;break;case T.verzweigung:a=20;break;case T.forSchleife:case T.whileSchleife:case T.endlosschleife:a=t.baseHeaderExtra+4;break;default:a=14}return a+n*t.lineHeight+e.zoomY}doUntilBodyLeadingInset(){return Math.max(20,this.lineWidthBold("do")+12)}effectiveLoopBodyLeading(e){return e.element.type===T.doUntilSchleife?e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:this.doUntilBodyLeadingInset():20}horizontalPaddingInsideCell(e){return na(e)?Math.max(100,this.metrics.minSidePadding*2.45):this.metrics.minSidePadding}minWidth(e){const t=e.textLines.length===0?0:Math.max(...e.textLines.map(s=>this.lineWidth(s)));let n=t+e.zoomX+this.horizontalPaddingInsideCell(e.type);if(e.type===T.aufruf){const s=Math.max(68,this.metrics.minSidePadding*1.7),r=Math.max(8,this.metrics.minSidePadding*.2);n=Math.max(n,t+e.zoomX+s+r)}const a=e.type===T.leerElement?76:e.type===T.aufruf?104:72;return Math.max(a,n)}layoutElement(e,t,n,a){if(na(e.type))return this.layoutMultiway(e,t,n,a);if(ta(e.type))return this.layoutLoop(e,t,n,a);const s=this.headerHeight(e);return ia(a,e,{x:t,y:n,width:this.minWidth(e),height:s},s)}layoutLoop(e,t,n,a){const s=x=>x.reduce((b,v)=>b+v.frame.height,0),r=x=>Math.max(0,...x.map(b=>b.frame.width)),o=e.loopBody??[];if(e.type===T.doUntilSchleife){const x=this.doUntilBodyLeadingInset(),b=e.zoomY,v=this.headerHeight(e),w=this.layoutList(o,t+x,n+b,[...a,0]),z=Math.max(this.minWidth(e),r(w)+x),I=s(w)+v+b,k=Math.max(0,z-x),S=ia(a,e,{x:t,y:n,width:z,height:I},v);return S.topBandHeight=b,S.loopBodyLeadingInset=x,S.children=w.map(j=>{const D=it(j);return D.frame.x=t+x,D.frame.width=k,this.stretchDescendantsWidths(D,k)}),S}const l=20,u=this.headerHeight(e),m=e.type===T.endlosschleife?40:0,c=this.layoutList(o,t+l,n+u,[...a,0]),d=Math.max(this.minWidth(e),r(c)+l),h=u+m+s(c),g=Math.max(0,d-l),f=ia(a,e,{x:t,y:n,width:d,height:h},u);return f.children=c.map(x=>{const b=it(x);return b.frame.x=t+l,b.frame.width=g,this.stretchDescendantsWidths(b,g)}),f}layoutMultiway(e,t,n,a){const s=this.headerHeight(e),r=e.cases??[],o=Math.max(1,r.length),l=Math.max(this.minWidth(e)/o,132);let u=[],m=[],c=0,d=0;if(r.forEach((x,b)=>{const v=t+c,w=this.layoutList(x.elements,v,n+s,[...a,b]),z=Math.max(0,...w.map(S=>S.frame.width));let I;e.type===T.verzweigung&&o===2?I=Math.max(z,(b===0?"true":"false").length*this.metrics.charWidth+24):I=Math.max(l,z);const k=w.reduce((S,j)=>S+j.frame.height,0);d=Math.max(d,k),u.push({x:v,y:n+s,width:I,height:k}),m.push(w.map(S=>{const j=it(S);return j.frame.x=v,j.frame.width=I,this.stretchDescendantsWidths(j,I)})),c+=I}),e.type===T.verzweigung&&o===2&&u.length===2){const x=Math.max(u[0].width,u[1].width),b=t,v=t+x,w=v-u[1].x;u[0]={...u[0],x:b,width:x},u[1]={...u[1],x:v,width:x},c=x*2,m[0]=m[0].map(z=>{const I=it(z);return I.frame.x=b,I.frame.width=x,this.stretchDescendantsWidths(I,x)}),m[1]=m[1].map(z=>{const I=xo(z,w);return I.frame.width=x,this.stretchDescendantsWidths(I,x)})}if(m.length>0){const x=X2(m,n+s);m=x.columns.map(b=>b.map(v=>this.stretchLoopBodiesVertically(v)));for(let b=0;b0?Math.max(...x.columnHeights):d}let h=Math.max(c,this.minWidth(e));if(c>.5&&h>c+.5){const x=h/c;let b=t;const v=[],w=[];u.forEach((z,I)=>{const k=z.width*x;w.push(m[I].map(S=>{const j=it(S);return j.frame.x=b,j.frame.width=k,this.stretchDescendantsWidths(j,k)})),v.push({x:b,y:z.y,width:k,height:z.height}),b+=k}),u=v,m=w,c=b-t,h=c}const g=u.length>0?u[u.length-1].width:c/o,f=ia(a,e,{x:t,y:n,width:h,height:s+d},s);return f.caseColumnFrames=u,f.dividerX=u.length>0?u[u.length-1].x:t+c-g,f.dividerYInset=e.type===T.fallauswahl?-20:0,f.columns=m,f.children=m.flat(),f}}function ah(i,e){if(Math.abs(e)<=1e-4)return i;const t=it(i),n=a=>{const s=it(a);return s.frame.y+=e,ah(s,e)};return t.columns?(t.columns=t.columns.map(a=>a.map(n)),t.children=t.columns.flat()):t.children=t.children.map(n),t}function xo(i,e){if(Math.abs(e)<=1e-4)return i;const t=it(i);return t.frame.x+=e,t.columns?(t.columns=t.columns.map(n=>n.map(a=>xo(a,e))),t.children=t.columns.flat()):t.children=t.children.map(n=>xo(n,e)),t}function X2(i,e){if(i.length<2)return{columns:i,columnHeights:i.map(u=>u.reduce((m,c)=>m+c.frame.height,0))};const t=.5,n=[e];for(const u of i)for(const m of u)n.push(m.frame.y+m.frame.height);const a=Math.max(...n);n.push(a),n.sort((u,m)=>u-m);let s=[];for(const u of n)s.length>0&&Math.abs(u-s[s.length-1])<=t||s.push(u);(s.length===0||Math.abs(s[0]-e)>t)&&s.unshift(e),s.length===0?s=[e,a]:s[s.length-1]{let c=Math.max(0,m);for(;c{let g=it(d);const f=s[c],x=d.frame.y+d.frame.height,b=h===u.length-1?s.length-1:r(x,c+1),v=s[b],w=f-g.frame.y;g.frame.y=f,g.frame.height=Math.max(0,v-f),g=ah(g,w),m.push(g),c=b}),o.push(m),l.push(s[s.length-1]-e)}return{columns:o,columnHeights:l}}const K2=[{item:"anweisung",label:"Anweisung"},{item:"verzweigung",label:"Verzweigung"},{item:"fallauswahl",label:"Fallauswahl"},{item:"forZaehlSchleife",label:"For-Schleife"},{item:"whileSchleife",label:"While-Schleife"},{item:"doUntilSchleife",label:"Do-while-Schleife"},{item:"endlosschleife",label:"Endlosschleife"},{item:"aufruf",label:"Aufruf"},{item:"aussprung",label:"Aussprung"}];function mu(i){const e=nn;switch(i){case"anweisung":return je(T.anweisung);case"verzweigung":return je(T.verzweigung,{cases:[{name:"true",elements:[e()]},{name:"false",elements:[e()]}]});case"fallauswahl":return je(T.fallauswahl,{cases:[{name:"1",elements:[e()]},{name:"2",elements:[e()]},{name:"default",elements:[e()]}]});case"forZaehlSchleife":return je(T.forSchleife,{textLines:["","",""],loopBody:[e()]});case"whileSchleife":return je(T.whileSchleife,{loopBody:[e()]});case"doUntilSchleife":return je(T.doUntilSchleife,{loopBody:[e()]});case"endlosschleife":return je(T.endlosschleife,{loopBody:[e()]});case"aussprung":return je(T.aussprung);case"aufruf":return je(T.aufruf)}}function ns(i){if(i==="")return"-1;";let e="";for(const t of i)e+=t.codePointAt(0)+";";return e}function bo(i){const e=i.split(";").filter(n=>n!=="");if(e.length===1&&e[0]==="-1")return"";let t="";for(const n of e){if(!/^[+-]?\d+$/.test(n))continue;const a=Number(n);a!==-1&&(a<0||a>1114111||a>=55296&&a<=57343||(t+=String.fromCodePoint(a)))}return t}class cu extends Error{}function Hl(i){const e=new DOMParser().parseFromString(i,"application/xml");if(e.getElementsByTagName("parsererror").length>0)throw new cu("Could not read XML.");const t=e.documentElement;if(!t||t.tagName!=="struktogramm")throw new cu("Invalid XML: root element is not .");const n={caption:hu(t,"caption")??"",elements:yo(t)},a=hu(t,"fontfamily");a!==void 0&&(n.fontFamily=a);const s=ui(t,"fontsize");s!==void 0&&(n.fontSize=s);const r=ui(t,"fontstyle");return r!==void 0&&(n.fontStyle=r),t.getAttribute("pseudocode")==="true"&&(n.pseudocode=!0),n}function m1(i){const e=(n,a)=>a===void 0?"":` ${n}="${sh(a)}"`;let t=` +var k2=Object.defineProperty;var S2=(i,e,t)=>e in i?k2(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var y=(i,e,t)=>S2(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(a){if(a.ep)return;a.ep=!0;const s=t(a);fetch(a.href,s)}})();const T2="modulepreload",j2=function(i,e){return new URL(i,e).href},nu={},K=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let r=function(m){return Promise.all(m.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const o=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=r(t.map(m=>{if(m=j2(m,n),m in nu)return;nu[m]=!0;const c=m.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(!!n)for(let f=o.length-1;f>=0;f--){const x=o[f];if(x.href===m&&(!c||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${d}`))return;const g=document.createElement("link");if(g.rel=c?"stylesheet":T2,c||(g.as="script"),g.crossOrigin="",g.href=m,u&&g.setAttribute("nonce",u),document.head.appendChild(g),c)return new Promise((f,x)=>{g.addEventListener("load",f),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return a.then(r=>{for(const o of r||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})};var T=(i=>(i[i.anweisung=0]="anweisung",i[i.verzweigung=1]="verzweigung",i[i.fallauswahl=2]="fallauswahl",i[i.forSchleife=3]="forSchleife",i[i.whileSchleife=4]="whileSchleife",i[i.doUntilSchleife=5]="doUntilSchleife",i[i.endlosschleife=6]="endlosschleife",i[i.aussprung=7]="aussprung",i[i.aufruf=8]="aufruf",i[i.leerElement=9]="leerElement",i))(T||{});function _2(i){return i===3||i===4||i===5||i===6}function C2(i){return i===1||i===2}function _e(i,e={}){return{type:i,zoomX:0,zoomY:0,textLines:[""],...e}}function A2(i){const e=i.textLines;if(!e.every(t=>t.trim()===""))switch(i.type){case T.forSchleife:return e.length<=1?e:[O2(e)];case T.verzweigung:return ea("if",e);case T.whileSchleife:return ea("while",e);case T.doUntilSchleife:return ea("while",P2(e));case T.fallauswahl:return ea("switch",e);default:return e}}function P2(i){if(i.length===0)return i;const e=i[0].trim(),t=e.toLowerCase(),n=[...i];if(t==="until")n[0]="";else if(t.startsWith("until "))n[0]=e.slice(6).trim();else if(t.startsWith("until("))n[0]=e.slice(5);else return i;return n}function iu(i){const e=new Set(["if","for","while","until","switch"]),t=["input:","output:","print:"],n=i.trim(),a=n.toLowerCase();for(const o of t){if(a===o)return{keyword:n,rest:""};if(a.startsWith(o+" "))return{keyword:n.slice(0,o.length),rest:n.slice(o.length).trim()}}const s=n.indexOf(" ");if(s<0)return;const r=n.slice(0,s);if(e.has(r.toLowerCase()))return{keyword:r,rest:n.slice(s+1).trim()}}function ea(i,e){if(e.length===0)return e;const t=e[0].trim(),n=t.toLowerCase();if(n===i||n.startsWith(i+" "))return e;const a=[...e];return a[0]=i+" "+t,a}function O2(i){let e=[...i];for(;e.length<3;)e.push("");e=e.slice(0,3);const t=a=>{let s=a.trim();for(;s.endsWith(";");)s=s.slice(0,-1).trim();return s},n=e.map(t).join("; ").trim();return n===""?"for":"for "+n}const qd={[T.anweisung]:"Anweisung",[T.verzweigung]:"Bedingung",[T.fallauswahl]:"Fallauswahl",[T.forSchleife]:"for 0 < i < anzahl",[T.whileSchleife]:"while …",[T.doUntilSchleife]:"while …",[T.endlosschleife]:"endless",[T.aussprung]:"break",[T.aufruf]:"Aufruf()",[T.leerElement]:"ø"};function M2(i){Object.assign(qd,i)}function Nl(i){return A2(i)??[qd[i.type]]}class We extends Error{}const xn=i=>structuredClone(i);function nn(){return _e(T.anweisung,{textLines:["ø"]})}function Z2(){return{caption:"",elements:[nn()]}}function Jl(i){if(i.type===T.leerElement)return!0;if(i.type===T.anweisung){const e=i.textLines;return e.length===0||e.length===1&&e[0]==="ø"}return!1}function kn(i,e){const t=vt(i,e);return t!==void 0&&Jl(t)}function Gi(i,e){if(e.length===0)throw new We("Invalid element path.");const[t,...n]=e;if(t<0||t>=i.length)throw new We("Invalid element path.");if(n.length===0)return{list:i,index:t};const[a,...s]=n;if(s.length===0)throw new We("Invalid element path.");return Gi(Ud(i[t],a),s)}function Ud(i,e){if(_2(i.type)){if(e!==0||!i.loopBody)throw new We("Invalid element path.");return i.loopBody}if(C2(i.type)){if(!i.cases||e<0||e>=i.cases.length)throw new We("Invalid element path.");return i.cases[e].elements}throw new We("Invalid element path.")}function Mt(i,e){const{list:t,index:n}=Gi(i.elements,e);return t[n]}function vt(i,e){try{return Mt(i,e)}catch{return}}function Mn(i,e,t){const n=xn(i),{list:a,index:s}=Gi(n.elements,e);return a[s]=xn(t),n}function H1(i,e,t){const n=xn(Mt(i,e));return n.textLines=t.length===0?[""]:t,Mn(i,e,n)}function xr(i,e){return e.length===0?!1:e.length===1&&i.elements.length===1?!kn(i,e):vt(i,e)!==void 0}function ki(i,e){const t=xn(i),{list:n,index:a}=Gi(t.elements,e);if(e.length===1&&n.length===1){if(Jl(n[0]))throw new We("The last root element cannot be deleted.");return n[0]=nn(),t}return n.splice(a,1),e.length>1&&n.length===0&&n.push(nn()),t}function li(i,e,t,n){const a=xn(i);let s;if(e.length===0)s=a.elements;else{const r=e.slice(0,-1),o=e[e.length-1],{list:l,index:u}=Gi(a.elements,r);s=Ud(l[u],o)}return s.splice(Math.min(Math.max(0,t),s.length),0,xn(n)),a}function Yd(i,e,t){if(t.length===0)throw new We("Invalid element path.");return li(i,t.slice(0,-1),t[t.length-1],e)}function fo(i,e,t){if(t.length===0)throw new We("Invalid element path.");return li(i,t.slice(0,-1),t[t.length-1]+1,e)}function Fl(i,e){return i.lengthe[n]===t)}function Rl(i,e){if(e.length===0)return i;const t=e[e.length-1],n=e.slice(0,-1);if(i.length<=n.length||!n.every((r,o)=>i[o]===r))return i;const a=n.length;if(i[a]<=t)return i;const s=[...i];return s[a]-=1,s}const Gl=(i,e)=>i.length===e.length&&i.every((t,n)=>t===e[n]);function D2(i,e,t){if(Gl(e,t))return i;if(Fl(e,t))throw new We("Invalid element path.");const n=Mt(i,e),a=ki(i,e);return Yd(a,n,Rl(t,e))}function B2(i,e,t){if(Gl(e,t))return i;if(Fl(e,t))throw new We("Invalid element path.");const n=Mt(i,e),a=ki(i,e);return fo(a,n,Rl(t,e))}function L2(i,e,t){if(!kn(i,t))throw new We("Invalid element path.");if(Gl(e,t))return i;if(Fl(e,t))throw new We("Invalid element path.");const n=Mt(i,e),a=ki(i,e);return Mn(a,Rl(t,e),n)}function W2(i,e){const t=xn(Mt(i,e)),n=t.cases;if(t.type!==T.fallauswahl||!n||n.length===0)throw new We("Invalid element path.");const a=n[n.length-1].name.toLowerCase()==="default",s=a?n.length-1:n.length,r=String(a?n.length:n.length+1);return n.splice(s,0,{name:r,elements:[nn()]}),{doc:Mn(i,e,t),path:[...e,s,0]}}function E2(i,e,t){const n=xn(Mt(i,e)),a=n.cases;if(n.type!==T.fallauswahl||!a)throw new We("Invalid element path.");if(a.length<=2)throw new We("A switch needs at least two cases.");if(t<0||t>=a.length)throw new We("Invalid element path.");a.splice(t,1);const s=Math.min(t,a.length-1);return{doc:Mn(i,e,n),path:[...e,s,0]}}function N2(i,e,t,n){const a=xn(Mt(i,e)),s=a.cases;if(a.type!==T.fallauswahl||!s)throw new We("Invalid element path.");if(t<0||t>=s.length)throw new We("Invalid element path.");const r=n.trim();if(r==="")throw new We("Invalid element path.");return s[t].name=r,Mn(i,e,a)}function J2(i,e){var t;if(!(!i||i.length===0))for(let n=i.length;n>=1;n--){const a=i.slice(0,n);if(((t=vt(e,a))==null?void 0:t.type)===T.fallauswahl)return a}}function F2(i,e){if(!(!i||i.length<=e.length))return i[e.length]}function br(i,e){if(e.elements.length!==0)return!i||!vt(e,i)?[0]:i}const $d=i=>i!==void 0&&/\s/.test(i);function ts(i){const e=i.trim().toLowerCase();return e.startsWith("input:")?"input":e.startsWith("output:")||e.startsWith("print:")?"output":"statement"}function R2(i){const e=i.trim(),t=e.toLowerCase();return t.startsWith("input:")?e.slice(6).trim():t.startsWith("output:")?e.slice(7).trim():t.startsWith("print:")?e.slice(6).trim():i}function au(i,e){const t=e.trim();return t===""?`${i} `:`${i} ${t}`}function G2(i,e){const t=R2(e);switch(i){case"statement":return t;case"input":return au("input:",t);case"output":return au("output:",t)}}const Na=i=>$d(i[0])?i.slice(1):i;function H2(i){const e=i.replace(/^\s+/,""),t=e.toLowerCase();return t.startsWith("input:")?Na(e.slice(6)):t.startsWith("output:")?Na(e.slice(7)):t.startsWith("print:")?Na(e.slice(6)):i}function su(i,e){const t=e.replace(/^\s+/,"");if(!t.toLowerCase().startsWith(i.toLowerCase()))return e;const n=t.slice(i.length);if(!(n===""||$d(n[0])||n[0]==="("))return e;const a=Na(n);return a.startsWith("(")&&a.endsWith(")")&&a.length>=2?a.slice(1,-1):a}function ru(i,e){if(i==="input:"||i==="output:")return H2(e);const t=su(i,e);if(i==="while"&&t===e){const n=su("until",e);if(n!==e)return n}return t}function V2(i,e){return e===""?`${i} `:`${i} ${e}`}function Xd(i){return i.replace(/[“”„«»]/g,'"').replace(/[’‘‚´]/g,"'")}function ou(i){const e=i.length===0?[""]:i.slice(0,3);for(;e.length<3;)e.push("");return e}function Q2(i){let e=Xd(i);for(;;){const t=e.trim();if(!t.endsWith(";"))return e;e=t.slice(0,-1).trim()}}const Vs='system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';function q2(i,e){return`${e==="bold"?700:500} ${i}px ${Vs}`}const Kd=(i,e,t)=>[...i].length*e*(t==="bold"?.68:.62);function U2(){if(typeof document>"u"||!document.body)return;const i="http://www.w3.org/2000/svg",e=document.createElementNS(i,"svg");e.setAttribute("aria-hidden","true"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.style.cssText="position:absolute;left:-9999px;top:0;visibility:hidden;overflow:hidden";const t=document.createElementNS(i,"text");if(t.setAttribute("font-family",Vs),t.style.whiteSpace="pre",e.append(t),document.body.append(e),typeof t.getComputedTextLength!="function"||typeof t.getBBox!="function"){e.remove();return}if(t.textContent="Mg",t.setAttribute("font-size","20"),!(t.getComputedTextLength()>0)){e.remove();return}return t}let vr;function eh(){return vr===void 0&&(vr=U2()??null),vr??void 0}function th(i,e,t){i.setAttribute("font-size",String(e)),i.setAttribute("font-weight",t==="bold"?"700":"500")}function lu(i,e){const t=`${i}|${e}`;let n=uu.get(t);if(!n){const a=eh();if(n={ascent:i*.95,descent:i*.24},a){th(a,i,e),a.setAttribute("y","0"),a.textContent="Mg";const s=a.getBBox();s.height>0&&(n={ascent:-s.y,descent:s.height+s.y})}uu.set(t,n)}return n}const uu=new Map;function Y2(){const i=eh();if(i){const n=new Map;return(a,s,r)=>{const o=`${s}|${r}|${a}`;let l=n.get(o);return l===void 0&&(th(i,s,r),i.textContent=a,l=a===""?0:i.getComputedTextLength(),n.size>2e3&&n.clear(),n.set(o,l)),l}}const e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null;if(!e)return Kd;const t=new Map;return(n,a,s)=>{const r=`${a}|${s}|${n}`;let o=t.get(r);return o===void 0&&(e.font=q2(a,s),o=e.measureText(n).width,t.size>2e3&&t.clear(),t.set(r,o)),o}}const nh={fontSize:15,lineHeight:20,charWidth:7,baseHeaderExtra:20,minSidePadding:42,cellTextInsetY:15,doUntilDoLabelTopInset:2,doUntilFooterTopInset:6,doUntilFooterBottomInset:8};function $2(i){return{...nh,fontSize:14,lineHeight:21,charWidth:5.5*(14/12),baseHeaderExtra:21,minSidePadding:40}}const ta=i=>i===T.forSchleife||i===T.whileSchleife||i===T.doUntilSchleife||i===T.endlosschleife,na=i=>i===T.fallauswahl||i===T.verzweigung;function ia(i,e,t,n=0){return{idPath:i,element:e,frame:t,headerBandHeight:n,topBandHeight:0,loopBodyLeadingInset:0,caseColumnFrames:[],children:[]}}function it(i){return{...i,frame:{...i.frame}}}class ih{constructor(e=nh,t=Kd){this.metrics=e,this.measure=t}layout(e,t={left:28,top:28}){const a=this.layoutList(e.elements,t.left,t.top,[]).map(l=>this.stretchLoopBodiesVertically(l));let s=0,r=0;const o=l=>{s=Math.max(s,l.frame.x+l.frame.width),r=Math.max(r,l.frame.y+l.frame.height),l.children.forEach(o)};return a.forEach(o),{canvasSize:{width:s+t.left,height:r+t.top},elements:a}}lineWidth(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"medium"))}lineWidthBold(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"bold"))}layoutList(e,t,n,a){let s=[],r=n;e.forEach((l,u)=>{const m=this.layoutElement(l,t,r,[...a,u]);s.push(m),r+=m.frame.height});const o=Math.max(0,...s.map(l=>l.frame.width));return o>0&&(s=s.map(l=>this.stretchNodeTreeToWidth(l,o))),s}stretchMultiwayNodeToWidth(e,t){const n=it(e),a=n.frame.width;if(!(a>0)||n.caseColumnFrames.length===0)return n;const s=t/a;n.frame.width=t;let r=n.frame.x;const o=n.caseColumnFrames.map(l=>{const u=l.width*s,m={x:r,y:l.y,width:u,height:l.height};return r+=u,m});return n.caseColumnFrames=o,n.dividerX=o.length>0?o[o.length-1].x:n.frame.x+t,n.columns&&n.columns.length===o.length&&(n.columns=n.columns.map((l,u)=>{const m=o[u];return l.map(c=>{const d=it(c);return d.frame.x=m.x,d.frame.width=m.width,this.stretchDescendantsWidths(d,m.width)})}),n.children=n.columns.flat()),n}stretchLoopChildren(e,t){const n=this.effectiveLoopBodyLeading(e),a=Math.max(0,t-n);e.children=e.children.map(s=>{const r=it(s);return r.frame.x=e.frame.x+n,r.frame.width=a,this.stretchDescendantsWidths(r,a)})}stretchNodeTreeToWidth(e,t){const n=it(e);return n.frame.width>0?na(n.element.type)&&n.caseColumnFrames.length>0?this.stretchMultiwayNodeToWidth(n,t):(n.frame.width=t,ta(n.element.type)?this.stretchLoopChildren(n,t):n.children=n.children.map(s=>this.stretchDescendantsWidths(s,t)),n):n}stretchDescendantsWidths(e,t){let n=it(e);return na(n.element.type)?n=this.stretchNodeTreeToWidth(n,t):ta(n.element.type)?(n.frame.width=t,this.stretchLoopChildren(n,t)):(n.frame.width=t,n.children=n.children.map(a=>this.stretchDescendantsWidths(a,t))),n}stretchLoopBodiesVertically(e){const t=it(e);if(t.columns&&t.columns.length>0)return t.columns=t.columns.map(s=>s.map(r=>this.stretchLoopBodiesVertically(r))),t.children=t.columns.flat(),t;t.children=t.children.map(s=>this.stretchLoopBodiesVertically(s));const n=s=>s===T.anweisung||s===T.leerElement||s===T.aufruf||s===T.aussprung||ta(s);let a;switch(t.element.type){case T.forSchleife:case T.whileSchleife:case T.endlosschleife:{const s=t.element.type===T.endlosschleife?40:0;a=t.frame.y+t.frame.height-s;break}case T.doUntilSchleife:a=t.frame.y+t.frame.height-t.headerBandHeight;break}if(a!==void 0&&t.children.length>0){const s=t.children.length-1;let r=it(t.children[s]);const o=a-(r.frame.y+r.frame.height);o>.5&&n(r.element.type)&&(r.frame.height+=o,r=this.stretchLoopBodiesVertically(r),t.children=[...t.children.slice(0,s),r])}return t}headerHeight(e){const t=this.metrics,n=Math.max(1,e.textLines.length);if(e.type===T.doUntilSchleife)return t.doUntilFooterTopInset+n*t.lineHeight+t.doUntilFooterBottomInset+e.zoomY;let a;switch(e.type){case T.fallauswahl:a=40;break;case T.verzweigung:a=20;break;case T.forSchleife:case T.whileSchleife:case T.endlosschleife:a=t.baseHeaderExtra+4;break;default:a=14}return a+n*t.lineHeight+e.zoomY}doUntilBodyLeadingInset(){return Math.max(20,this.lineWidthBold("do")+12)}effectiveLoopBodyLeading(e){return e.element.type===T.doUntilSchleife?e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:this.doUntilBodyLeadingInset():20}horizontalPaddingInsideCell(e){return na(e)?Math.max(100,this.metrics.minSidePadding*2.45):this.metrics.minSidePadding}minWidth(e){const t=e.textLines.length===0?0:Math.max(...e.textLines.map(s=>this.lineWidth(s)));let n=t+e.zoomX+this.horizontalPaddingInsideCell(e.type);if(e.type===T.aufruf){const s=Math.max(68,this.metrics.minSidePadding*1.7),r=Math.max(8,this.metrics.minSidePadding*.2);n=Math.max(n,t+e.zoomX+s+r)}const a=e.type===T.leerElement?76:e.type===T.aufruf?104:72;return Math.max(a,n)}layoutElement(e,t,n,a){if(na(e.type))return this.layoutMultiway(e,t,n,a);if(ta(e.type))return this.layoutLoop(e,t,n,a);const s=this.headerHeight(e);return ia(a,e,{x:t,y:n,width:this.minWidth(e),height:s},s)}layoutLoop(e,t,n,a){const s=x=>x.reduce((b,v)=>b+v.frame.height,0),r=x=>Math.max(0,...x.map(b=>b.frame.width)),o=e.loopBody??[];if(e.type===T.doUntilSchleife){const x=this.doUntilBodyLeadingInset(),b=e.zoomY,v=this.headerHeight(e),w=this.layoutList(o,t+x,n+b,[...a,0]),z=Math.max(this.minWidth(e),r(w)+x),I=s(w)+v+b,k=Math.max(0,z-x),S=ia(a,e,{x:t,y:n,width:z,height:I},v);return S.topBandHeight=b,S.loopBodyLeadingInset=x,S.children=w.map(_=>{const M=it(_);return M.frame.x=t+x,M.frame.width=k,this.stretchDescendantsWidths(M,k)}),S}const l=20,u=this.headerHeight(e),m=e.type===T.endlosschleife?40:0,c=this.layoutList(o,t+l,n+u,[...a,0]),d=Math.max(this.minWidth(e),r(c)+l),h=u+m+s(c),g=Math.max(0,d-l),f=ia(a,e,{x:t,y:n,width:d,height:h},u);return f.children=c.map(x=>{const b=it(x);return b.frame.x=t+l,b.frame.width=g,this.stretchDescendantsWidths(b,g)}),f}layoutMultiway(e,t,n,a){const s=this.headerHeight(e),r=e.cases??[],o=Math.max(1,r.length),l=Math.max(this.minWidth(e)/o,132);let u=[],m=[],c=0,d=0;if(r.forEach((x,b)=>{const v=t+c,w=this.layoutList(x.elements,v,n+s,[...a,b]),z=Math.max(0,...w.map(S=>S.frame.width));let I;e.type===T.verzweigung&&o===2?I=Math.max(z,(b===0?"true":"false").length*this.metrics.charWidth+24):I=Math.max(l,z);const k=w.reduce((S,_)=>S+_.frame.height,0);d=Math.max(d,k),u.push({x:v,y:n+s,width:I,height:k}),m.push(w.map(S=>{const _=it(S);return _.frame.x=v,_.frame.width=I,this.stretchDescendantsWidths(_,I)})),c+=I}),e.type===T.verzweigung&&o===2&&u.length===2){const x=Math.max(u[0].width,u[1].width),b=t,v=t+x,w=v-u[1].x;u[0]={...u[0],x:b,width:x},u[1]={...u[1],x:v,width:x},c=x*2,m[0]=m[0].map(z=>{const I=it(z);return I.frame.x=b,I.frame.width=x,this.stretchDescendantsWidths(I,x)}),m[1]=m[1].map(z=>{const I=xo(z,w);return I.frame.width=x,this.stretchDescendantsWidths(I,x)})}if(m.length>0){const x=X2(m,n+s);m=x.columns.map(b=>b.map(v=>this.stretchLoopBodiesVertically(v)));for(let b=0;b0?Math.max(...x.columnHeights):d}let h=Math.max(c,this.minWidth(e));if(c>.5&&h>c+.5){const x=h/c;let b=t;const v=[],w=[];u.forEach((z,I)=>{const k=z.width*x;w.push(m[I].map(S=>{const _=it(S);return _.frame.x=b,_.frame.width=k,this.stretchDescendantsWidths(_,k)})),v.push({x:b,y:z.y,width:k,height:z.height}),b+=k}),u=v,m=w,c=b-t,h=c}const g=u.length>0?u[u.length-1].width:c/o,f=ia(a,e,{x:t,y:n,width:h,height:s+d},s);return f.caseColumnFrames=u,f.dividerX=u.length>0?u[u.length-1].x:t+c-g,f.dividerYInset=e.type===T.fallauswahl?-20:0,f.columns=m,f.children=m.flat(),f}}function ah(i,e){if(Math.abs(e)<=1e-4)return i;const t=it(i),n=a=>{const s=it(a);return s.frame.y+=e,ah(s,e)};return t.columns?(t.columns=t.columns.map(a=>a.map(n)),t.children=t.columns.flat()):t.children=t.children.map(n),t}function xo(i,e){if(Math.abs(e)<=1e-4)return i;const t=it(i);return t.frame.x+=e,t.columns?(t.columns=t.columns.map(n=>n.map(a=>xo(a,e))),t.children=t.columns.flat()):t.children=t.children.map(n=>xo(n,e)),t}function X2(i,e){if(i.length<2)return{columns:i,columnHeights:i.map(u=>u.reduce((m,c)=>m+c.frame.height,0))};const t=.5,n=[e];for(const u of i)for(const m of u)n.push(m.frame.y+m.frame.height);const a=Math.max(...n);n.push(a),n.sort((u,m)=>u-m);let s=[];for(const u of n)s.length>0&&Math.abs(u-s[s.length-1])<=t||s.push(u);(s.length===0||Math.abs(s[0]-e)>t)&&s.unshift(e),s.length===0?s=[e,a]:s[s.length-1]{let c=Math.max(0,m);for(;c{let g=it(d);const f=s[c],x=d.frame.y+d.frame.height,b=h===u.length-1?s.length-1:r(x,c+1),v=s[b],w=f-g.frame.y;g.frame.y=f,g.frame.height=Math.max(0,v-f),g=ah(g,w),m.push(g),c=b}),o.push(m),l.push(s[s.length-1]-e)}return{columns:o,columnHeights:l}}const K2=[{item:"anweisung",label:"Anweisung"},{item:"verzweigung",label:"Verzweigung"},{item:"fallauswahl",label:"Fallauswahl"},{item:"forZaehlSchleife",label:"For-Schleife"},{item:"whileSchleife",label:"While-Schleife"},{item:"doUntilSchleife",label:"Do-while-Schleife"},{item:"endlosschleife",label:"Endlosschleife"},{item:"aufruf",label:"Aufruf"},{item:"aussprung",label:"Aussprung"}];function mu(i){const e=nn;switch(i){case"anweisung":return _e(T.anweisung);case"verzweigung":return _e(T.verzweigung,{cases:[{name:"true",elements:[e()]},{name:"false",elements:[e()]}]});case"fallauswahl":return _e(T.fallauswahl,{cases:[{name:"1",elements:[e()]},{name:"2",elements:[e()]},{name:"default",elements:[e()]}]});case"forZaehlSchleife":return _e(T.forSchleife,{textLines:["","",""],loopBody:[e()]});case"whileSchleife":return _e(T.whileSchleife,{loopBody:[e()]});case"doUntilSchleife":return _e(T.doUntilSchleife,{loopBody:[e()]});case"endlosschleife":return _e(T.endlosschleife,{loopBody:[e()]});case"aussprung":return _e(T.aussprung);case"aufruf":return _e(T.aufruf)}}function ns(i){if(i==="")return"-1;";let e="";for(const t of i)e+=t.codePointAt(0)+";";return e}function bo(i){const e=i.split(";").filter(n=>n!=="");if(e.length===1&&e[0]==="-1")return"";let t="";for(const n of e){if(!/^[+-]?\d+$/.test(n))continue;const a=Number(n);a!==-1&&(a<0||a>1114111||a>=55296&&a<=57343||(t+=String.fromCodePoint(a)))}return t}class cu extends Error{}function Hl(i){const e=new DOMParser().parseFromString(i,"application/xml");if(e.getElementsByTagName("parsererror").length>0)throw new cu("Could not read XML.");const t=e.documentElement;if(!t||t.tagName!=="struktogramm")throw new cu("Invalid XML: root element is not .");const n={caption:hu(t,"caption")??"",elements:yo(t)},a=hu(t,"fontfamily");a!==void 0&&(n.fontFamily=a);const s=ui(t,"fontsize");s!==void 0&&(n.fontSize=s);const r=ui(t,"fontstyle");return r!==void 0&&(n.fontStyle=r),t.getAttribute("pseudocode")==="true"&&(n.pseudocode=!0),n}function m1(i){const e=(n,a)=>a===void 0?"":` ${n}="${sh(a)}"`;let t=` `;t+=" `;for(const n of i.elements)t+=vo(n," ");return t+=` `,t}function vo(i,e){let t=`${e} @@ -8,18 +8,18 @@ var k2=Object.defineProperty;var S2=(i,e,t)=>e in i?k2(i,e,{enumerable:!0,config `}if(i.cases)for(const n of i.cases){t+=`${e} `;for(const a of n.elements)t+=vo(a,e+" ");t+=`${e} `}return t+=`${e} -`,t}function sh(i){return i.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function e3(i){return i.replace(/&/g,"&").replace(//g,">")}function du(i){return String(i.a<<24|i.r<<16|i.g<<8|i.b|0)}function Fa(i,e){return Array.from(i.children).filter(t=>t.tagName===e)}function yo(i){const e=[];for(const t of Fa(i,"strelem")){const n=t3(t);n&&e.push(n)}return e}function t3(i){const e=ui(i,"typ");if(e===void 0||T[e]===void 0)return;const t={type:e,zoomX:ui(i,"zx")??0,zoomY:ui(i,"zy")??0,textLines:Fa(i,"text").map(o=>bo((o.textContent??"").trim()))},n=gu(i.getAttribute("textcolor"));n&&(t.textColor=n);const a=gu(i.getAttribute("bgcolor"));a&&(t.backgroundColor=a),t.textLines.length===0&&(t.textLines=[""]);const s=Fa(i,"schleifeninhalt")[0];if(s){const o=yo(s);o.length>0&&(t.loopBody=o)}const r=Fa(i,"fall").map(o=>({name:bo(o.getAttribute("fallname")??""),elements:yo(o)}));return r.length>0&&(t.cases=r),t}function hu(i,e){const t=i.getAttribute(e);return t===null?void 0:bo(t)}function ui(i,e){const t=i.getAttribute(e);if(!(t===null||!/^[+-]?\d+$/.test(t)))return Number(t)}function gu(i){if(i===null||!/^[+-]?\d+$/.test(i))return;const e=Number(i);if(e<-2147483648||e>2147483647)return;const t=e>>>0;return{a:t>>>24&255,r:t>>>16&255,g:t>>>8&255,b:t&255}}const n3="http://www.w3.org/2000/svg",Ee={diagramLineWidth:2,outerFrameLineWidth:2,selectionLineWidth:3.5,canvasOuterMargin:16,cellTextInsetX:18,cellTextInsetY:15,multiHeaderFirstLineY:14,branchLabelInsetX:10,fallauswahlCaseLabelBand:26,callSideBarInset:14,callTextInsetFromSideBar:20,loopBodyLeadingInset:20};function rh(i){switch(i){case T.forSchleife:case T.whileSchleife:case T.doUntilSchleife:case T.endlosschleife:return"loop";case T.verzweigung:case T.fallauswahl:return"if";default:return}}function Se(i,e={}){const t=document.createElementNS(n3,i);for(const[n,a]of Object.entries(e))t.setAttribute(n,String(a));return t}class oh{constructor(e,t){y(this,"usesSimulationHighlight",!1);y(this,"fillsSelection",!1);this.metrics=e,this.measure=t}get lineHeight(){return this.metrics.lineHeight}get fontSize(){return this.metrics.fontSize}render(e,t,n,a=Ee.canvasOuterMargin){const s=Se("svg",{width:t.width,height:t.height,viewBox:`0 0 ${t.width} ${t.height}`,"font-family":Vs,"font-size":this.fontSize,class:"diagram"});s.append(Se("rect",{x:0,y:0,width:t.width,height:t.height,fill:"#fafafa"}));const r=a;s.append(Se("rect",{x:r,y:r,width:e.canvasSize.width-2*r-1,height:e.canvasSize.height-2*r-1,fill:"none",stroke:"black","stroke-width":Ee.outerFrameLineWidth}));const o=Se("g");for(const l of e.elements)this.drawNode(l,o,n,{},void 0,"method");return s.append(o),s}line(e,t){e.append(Se("polyline",{points:t.map(n=>n.join(",")).join(" "),fill:"none",stroke:"black","stroke-width":Ee.diagramLineWidth,"stroke-linejoin":"miter"}))}strokeCellBorder(e,t,n){const a=t.x,s=t.y,r=t.x+t.width,o=t.y+t.height;if(!n.top&&!n.left&&!n.bottom&&!n.right){e.append(Se("rect",{x:a,y:s,width:t.width,height:t.height,fill:"none",stroke:"black","stroke-width":Ee.diagramLineWidth}));return}n.top||this.line(e,[[a,s],[r,s]]),n.right||this.line(e,[[r,s],[r,o]]),n.bottom||this.line(e,[[r,o],[a,o]]),n.left||this.line(e,[[a,o],[a,s]])}textWidth(e){const t=iu(e);return t?this.measure(t.keyword,this.fontSize,"bold")+(t.rest===""?0:this.measure(" "+t.rest,this.fontSize,"medium")):this.measure(e,this.fontSize,"medium")}drawKeywordLine(e,t,n,a){const s=Se("text",{x:n,y:a+lu(this.fontSize,"medium").ascent,"font-weight":500});s.style.whiteSpace="pre";const r=iu(t);if(r){const o=Se("tspan",{"font-weight":700});if(o.textContent=r.keyword,s.append(o),r.rest!==""){const l=Se("tspan",{});l.textContent=" "+r.rest,s.append(l)}}else s.textContent=t;e.append(s)}drawLabel(e,t,n,a,s,r){const o=lu(this.fontSize,s?"bold":"medium"),l=Se("text",{x:n,y:r==="top"?a+o.ascent:a-o.descent,"font-weight":s?700:500});l.style.whiteSpace="pre",l.textContent=t,e.append(l)}roofMetrics(e,t,n,a){const s=t.y+n,r=e.dividerYInset??0,o=12,l=Math.max(e.element.textLines.length,1)*this.lineHeight,u=t.y+Ee.multiHeaderFirstLineY;if(e.element.type===T.fallauswahl){const c=Math.max(Ee.fallauswahlCaseLabelBand,this.lineHeight+10),d=s-c,h=Math.min(s+r,d-8),g=Math.max(h,u+l+6);return{apex:{x:a,y:g},maxTextBottom:d-o,roofBottom:s}}const m={x:a,y:s+r};return{apex:m,maxTextBottom:m.y-o,roofBottom:s}}drawNode(e,t,n,a,s,r){var j;const o=e.frame,l=e.element,u=o.x+o.width,m=o.y+o.height,c=l.type===T.verzweigung||l.type===T.fallauswahl,d=c?e.headerBandHeight:0,h=n!==void 0&&wo(e.idPath,n),g=Nl(l),f=Se("g",{"data-path":e.idPath.join(",")});t.append(f);const x=this.usesSimulationHighlight,b=l.backgroundColor,v=b&&b.a>0?`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a/255})`:"white",w=h&&(x||this.fillsSelection)?"rgba(199, 230, 255, 0.55)":v,z=rh(l.type)??(l.type===T.leerElement?r:"method"),I=Se("rect",{x:o.x,y:o.y,width:o.width,height:o.height,fill:w});w==="white"&&z&&I.setAttribute("class",`ns-scope ns-scope-${z}`),f.append(I),this.strokeCellBorder(f,o,a);const k=Ee.callSideBarInset;if(l.type===T.aufruf?(this.line(f,[[o.x+k,o.y],[o.x+k,m]]),this.line(f,[[u-k,o.y],[u-k,m]])):l.type===T.aussprung&&this.line(f,[[o.x+k,o.y],[o.x,o.y+o.height/2],[o.x+k,m]]),c&&e.dividerX!==void 0){const D=e.dividerX,O=this.roofMetrics(e,o,d,D),P=Math.max(g.length,1)*this.lineHeight,C=o.y+Ee.multiHeaderFirstLineY;this.line(f,[[o.x,o.y],[O.apex.x,O.apex.y],[u,o.y]]),l.type===T.fallauswahl&&this.line(f,[[o.x,O.roofBottom],[u,O.roofBottom]]);let Z;C+P<=O.maxTextBottom?Z=C:Z=Math.max(o.y+2,O.maxTextBottom-(Math.max(g.length,1)-1)*this.lineHeight-this.lineHeight),g.forEach((E,U)=>{const ee=this.textWidth(E);let ge;if(l.type===T.verzweigung){const Ie=o.x+Ee.cellTextInsetX,fe=u-ee-Ee.cellTextInsetX;ge=Math.min(Math.max(D-ee/2,Ie),fe)}else ge=o.x+o.width/2-ee/2;this.drawKeywordLine(f,E,ge,Z+U*this.lineHeight)})}else if(l.type!==T.doUntilSchleife)if(l.type===T.anweisung||l.type===T.aufruf||l.type===T.aussprung){const D=Ee.cellTextInsetX;let O=o.x+D,P=u-D;l.type===T.aufruf?(O=o.x+k+Ee.callTextInsetFromSideBar,P=u-k-Ee.callTextInsetFromSideBar):l.type===T.aussprung&&(O=o.x+k+D);const C=Math.max(0,P-O);let Z=o.y+o.height/2-Math.max(1,g.length)*this.lineHeight/2;for(const E of g)this.drawKeywordLine(f,E,O+(C-this.textWidth(E))/2,Z),Z+=this.lineHeight}else{const D=Math.max(1,g.length)*this.lineHeight;let O=s===T.doUntilSchleife?o.y+o.height/2-D/2:o.y+Ee.cellTextInsetY;for(const P of g)this.drawKeywordLine(f,P,o.x+Ee.cellTextInsetX,O),O+=this.lineHeight}e.children.forEach((D,O)=>{const P=l.type===T.doUntilSchleife&&O===0?{top:!0,left:!0}:{};this.drawNode(D,t,n,P,l.type,z)});const S=Se("g");if(t.append(S),l.type===T.doUntilSchleife){const D=((j=e.children[0])==null?void 0:j.frame.x)??o.x+(e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:Ee.loopBodyLeadingInset);this.drawLabel(S,"do",o.x+4,o.y+this.metrics.doUntilDoLabelTopInset,!0,"top");const O=m-e.headerBandHeight;this.line(S,[[D,O],[u,O]]),this.line(S,[[D,o.y],[D,O]]);let P=O+this.metrics.doUntilFooterTopInset;for(const C of g)this.drawKeywordLine(S,C,o.x+Ee.cellTextInsetX,P),P+=this.lineHeight}if(c&&e.dividerX!==void 0&&e.caseColumnFrames.length>1){const D=this.roofMetrics(e,o,d,e.dividerX),O=D.apex;e.caseColumnFrames.forEach((C,Z)=>{if(Z>=e.caseColumnFrames.length-1)return;const E=C.x+C.width,U=i3(E,o,O),ee=Number.isFinite(U)?Math.min(Math.max(U,o.y),m):o.y;this.line(S,[[E,m],[E,ee]])});const P=l.cases;if(P&&P.length===e.caseColumnFrames.length){const C=l.type===T.fallauswahl?D.roofBottom-6:o.y+d-8,Z=Ee.branchLabelInsetX;if(l.type===T.verzweigung&&P.length===2){this.drawLabel(S,"true",o.x+Z,C,!0,"bottom");const E=e.caseColumnFrames[1],U=this.measure("false",this.fontSize,"bold");this.drawLabel(S,"false",E.x+E.width-Z-U,C,!0,"bottom")}else P.forEach((E,U)=>{const ee=e.caseColumnFrames[U],ge=["default","true","false"].includes(E.name.toLowerCase()),Ie=this.measure(E.name,this.fontSize,ge?"bold":"medium");this.drawLabel(S,E.name,ee.x+ee.width/2-Ie/2,C,ge,"bottom")})}}h&&S.append(Se("rect",{x:o.x,y:o.y,width:o.width,height:o.height,class:"selection-frame",fill:"none",stroke:x?"rgba(66, 140, 242, 0.78)":"rgba(0, 122, 255, 0.9)","stroke-width":Ee.selectionLineWidth}))}}function i3(i,e,t){const n=e.y;if(i<=t.x){const s=t.x-e.x;return Math.abs(s)<.5?t.y:n+(t.y-n)/s*(i-e.x)}const a=e.x+e.width-t.x;return Math.abs(a)<.5?t.y:t.y+(n-t.y)/a*(i-t.x)}function wo(i,e){return i.length===e.length&&i.every((t,n)=>t===e[n])}function a3(i){const e=[],t=n=>{e.push(n),n.children.forEach(t)};return i.forEach(t),e}function is(i){var e,t;return{...i,textLines:Nl(i),loopBody:(e=i.loopBody)==null?void 0:e.map(is),cases:(t=i.cases)==null?void 0:t.map(n=>({name:n.name,elements:n.elements.map(is)}))}}const s3=[{code:"de",name:"Deutsch"},{code:"en",name:"English"},{code:"es",name:"Español"},{code:"fr",name:"Français"},{code:"it",name:"Italiano"},{code:"pl",name:"Polski"},{code:"tr",name:"Türkçe"},{code:"ko",name:"한국어"},{code:"ja",name:"日本語"},{code:"el",name:"Ελληνικά"},{code:"uk",name:"Українська"},{code:"ar",name:"العربية"},{code:"ru",name:"Русский"},{code:"he",name:"עברית"},{code:"nl",name:"Nederlands"},{code:"sv",name:"Svenska"},{code:"da",name:"Dansk"},{code:"nb",name:"Norsk bokmål"},{code:"zh-Hans",name:"中文(简体)"},{code:"zh-Hant",name:"中文(繁體)"},{code:"pt-PT",name:"Português"},{code:"java",name:"Java (Keywords)"}],lh=["de","en","pt-PT"],uh=s3.filter(i=>lh.includes(i.code)),pu=i=>lh.includes(i),r3=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CxCno28C.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BAutdlBb.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings":()=>K(()=>import("./Localizable-Dk8F86qS.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings":()=>K(()=>import("./Localizable-rqA-20hM.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DBLIUcBd.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings":()=>K(()=>import("./Localizable-LSTVB2Q5.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings":()=>K(()=>import("./Localizable-ByPZS4RL.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings":()=>K(()=>import("./Localizable-R-16GCrk.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DXAPah1g.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CkJEmEEP.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BudCXCER.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DSvkBkp-.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BJ55WGVD.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BYJK0mdR.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CHv0OL9S.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings":()=>K(()=>import("./Localizable-1QZ0wfvJ.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings":()=>K(()=>import("./Localizable-M33nNbEe.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BM86Igqt.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings":()=>K(()=>import("./Localizable-UGog_aku.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CaVEL1es.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DqIDp_hh.js"),[],import.meta.url).then(i=>i.default)}),mh=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Java.strings":()=>K(()=>import("./Java-Bpx1Vwvg.js"),[],import.meta.url).then(i=>i.default)}),o3=Object.assign({"../i18n/ar.strings":()=>K(()=>import("./ar-uZ_mV_Na.js"),[],import.meta.url).then(i=>i.default),"../i18n/da.strings":()=>K(()=>import("./da-C8aaC9z5.js"),[],import.meta.url).then(i=>i.default),"../i18n/de.strings":()=>K(()=>import("./de-Co2EVty-.js"),[],import.meta.url).then(i=>i.default),"../i18n/el.strings":()=>K(()=>import("./el-BlQcOTEr.js"),[],import.meta.url).then(i=>i.default),"../i18n/en.strings":()=>K(()=>import("./en-DCZQrvHo.js"),[],import.meta.url).then(i=>i.default),"../i18n/es.strings":()=>K(()=>import("./es-DA9G5_P_.js"),[],import.meta.url).then(i=>i.default),"../i18n/fr.strings":()=>K(()=>import("./fr-yaOEtLAD.js"),[],import.meta.url).then(i=>i.default),"../i18n/he.strings":()=>K(()=>import("./he-DhhDsw0I.js"),[],import.meta.url).then(i=>i.default),"../i18n/it.strings":()=>K(()=>import("./it-C4u42T79.js"),[],import.meta.url).then(i=>i.default),"../i18n/ja.strings":()=>K(()=>import("./ja-WE8XI1hF.js"),[],import.meta.url).then(i=>i.default),"../i18n/ko.strings":()=>K(()=>import("./ko-BmWPgd-B.js"),[],import.meta.url).then(i=>i.default),"../i18n/nb.strings":()=>K(()=>import("./nb-C5ktjao7.js"),[],import.meta.url).then(i=>i.default),"../i18n/nl.strings":()=>K(()=>import("./nl-D84YMRy6.js"),[],import.meta.url).then(i=>i.default),"../i18n/pl.strings":()=>K(()=>import("./pl-DWX5XtXe.js"),[],import.meta.url).then(i=>i.default),"../i18n/pt-PT.strings":()=>K(()=>import("./pt-PT-Dln8jTsC.js"),[],import.meta.url).then(i=>i.default),"../i18n/ru.strings":()=>K(()=>import("./ru-oTax2zks.js"),[],import.meta.url).then(i=>i.default),"../i18n/sv.strings":()=>K(()=>import("./sv-DEFroOFk.js"),[],import.meta.url).then(i=>i.default),"../i18n/tr.strings":()=>K(()=>import("./tr-Cmdsrvdm.js"),[],import.meta.url).then(i=>i.default),"../i18n/uk.strings":()=>K(()=>import("./uk-CRlpTSkg.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hans.strings":()=>K(()=>import("./zh-Hans-D9vdrX4y.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hant.strings":()=>K(()=>import("./zh-Hant-CetLy6Gl.js"),[],import.meta.url).then(i=>i.default)});function Ja(i,e){var t;return(t=Object.entries(i).find(([n])=>n.endsWith(e)))==null?void 0:t[1]}function ch(i){const e=new Map,t=i.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*\/\/.*$/gm,""),n=/"((?:[^"\\]|\\.)*)"\s*=\s*"((?:[^"\\]|\\.)*)"\s*;/g,a=s=>s.replace(/\\(u[0-9a-fA-F]{4}|.)/g,(r,o)=>o==="n"?` -`:o==="t"?" ":o.startsWith("u")&&o.length===5?String.fromCharCode(parseInt(o.slice(1),16)):o);for(const s of t.matchAll(n))e.set(a(s[1]),a(s[2]));return e}async function zo(i){const e=i==="java"?Ja(mh,"/Java.strings"):Ja(r3,`/${i}.lproj/Localizable.strings`),t=Ja(o3,`/${i}.strings`),n=new Map;for(const a of[e,t])if(a)for(const[s,r]of ch(await a()))n.set(s,r);return n}let dh="en",hh=new Map,Kn=new Map;const as="appLanguageCode",Vl="visustruct.keywords";let Io=new Map,ql=!1;const l3=i=>i.startsWith("element_")||i.startsWith("canvas_stub_");function u3(){try{const i=new URLSearchParams(location.search).get("lang")==="java"||localStorage.getItem(as)==="java";return i&&(localStorage.setItem(as,"en"),localStorage.setItem(Vl,"1")),i}catch{return!1}}function m3(){try{return localStorage.getItem(Vl)==="1"}catch{return!1}}async function gh(i,e=!0){if(i&&Io.size===0){Kn.size===0&&(Kn=await zo("en"));const t=Ja(mh,"/Java.strings");if(t)for(const[n,a]of ch(await t()))l3(n)&&a!==Kn.get(n)&&Io.set(n,a)}if(ql=i,e)try{localStorage.setItem(Vl,i?"1":"0")}catch{}}function c3(){return ql}function d3(){if(u3())return"en";const i=new URLSearchParams(location.search).get("lang");if(i&&pu(i))return i;try{const e=localStorage.getItem(as);if(e&&pu(e))return e}catch{}for(const e of navigator.languages??[navigator.language]){const t=e.toLowerCase();if(t.startsWith("pt"))return"pt-PT";const n=uh.find(a=>a.code===t.split("-")[0]);if(n)return n.code}return"en"}async function ph(i,e=!0){if(Kn.size===0&&(Kn=await zo("en")),hh=i==="en"?Kn:await zo(i),dh=i,e)try{localStorage.setItem(as,i)}catch{}const t=document.documentElement;t.lang=i==="java"?"en":i,t.dir=i==="ar"||i==="he"?"rtl":"ltr"}function r1(){return dh}function p(i,...e){const t=(ql?Io.get(i):void 0)??hh.get(i)??Kn.get(i)??i;if(e.length===0)return t;let n=0;return t.replace(/%(?:(\d+)\$)?[@d]/g,(a,s)=>String(e[s?Number(s)-1:n++]??""))}const ss=243,h3=244,fh=40,yr=4,g3=1;function Ql(i){const e=i.length,t=ss+(e&255)+(e>>8)&255,n=i.reduce((a,s)=>a+s,0)&255;return Uint8Array.from([ss,t,e&255,e>>8,...i,n,h3])}function p3(i,e,t){const n=Array.from(new TextEncoder().encode(i));return Ql([fh,e,t&255,t>>8&255,n.length&255,n.length>>8,...n])}function f3(i){if(i[0]!==fh||i.length<6)return;const e=new TextDecoder().decode(Uint8Array.from(i.slice(6))),t=/"ret"\s*:\s*([^}]*)\}/.exec(e);return t?{idx:i[2]|i[3]<<8,value:b3(t[1].trim())}:void 0}function x3(i){const e=[];for(;;){const t=i.indexOf(ss);if(t<0){i.length=0;break}if(i.splice(0,t),i.length<4)break;const n=i[2]|i[3]<<8;if(i[1]!==(ss+i[2]+i[3]&255)||n>4096){i.splice(0,1);continue}if(i.length/g,">")}function e3(i){return i.replace(/&/g,"&").replace(//g,">")}function du(i){return String(i.a<<24|i.r<<16|i.g<<8|i.b|0)}function Ja(i,e){return Array.from(i.children).filter(t=>t.tagName===e)}function yo(i){const e=[];for(const t of Ja(i,"strelem")){const n=t3(t);n&&e.push(n)}return e}function t3(i){const e=ui(i,"typ");if(e===void 0||T[e]===void 0)return;const t={type:e,zoomX:ui(i,"zx")??0,zoomY:ui(i,"zy")??0,textLines:Ja(i,"text").map(o=>bo((o.textContent??"").trim()))},n=gu(i.getAttribute("textcolor"));n&&(t.textColor=n);const a=gu(i.getAttribute("bgcolor"));a&&(t.backgroundColor=a),t.textLines.length===0&&(t.textLines=[""]);const s=Ja(i,"schleifeninhalt")[0];if(s){const o=yo(s);o.length>0&&(t.loopBody=o)}const r=Ja(i,"fall").map(o=>({name:bo(o.getAttribute("fallname")??""),elements:yo(o)}));return r.length>0&&(t.cases=r),t}function hu(i,e){const t=i.getAttribute(e);return t===null?void 0:bo(t)}function ui(i,e){const t=i.getAttribute(e);if(!(t===null||!/^[+-]?\d+$/.test(t)))return Number(t)}function gu(i){if(i===null||!/^[+-]?\d+$/.test(i))return;const e=Number(i);if(e<-2147483648||e>2147483647)return;const t=e>>>0;return{a:t>>>24&255,r:t>>>16&255,g:t>>>8&255,b:t&255}}const n3="http://www.w3.org/2000/svg",Ee={diagramLineWidth:2,outerFrameLineWidth:2,selectionLineWidth:3.5,canvasOuterMargin:16,cellTextInsetX:18,cellTextInsetY:15,multiHeaderFirstLineY:14,branchLabelInsetX:10,fallauswahlCaseLabelBand:26,callSideBarInset:14,callTextInsetFromSideBar:20,loopBodyLeadingInset:20};function rh(i){switch(i){case T.forSchleife:case T.whileSchleife:case T.doUntilSchleife:case T.endlosschleife:return"loop";case T.verzweigung:case T.fallauswahl:return"if";default:return}}function Se(i,e={}){const t=document.createElementNS(n3,i);for(const[n,a]of Object.entries(e))t.setAttribute(n,String(a));return t}class oh{constructor(e,t){y(this,"usesSimulationHighlight",!1);y(this,"fillsSelection",!1);this.metrics=e,this.measure=t}get lineHeight(){return this.metrics.lineHeight}get fontSize(){return this.metrics.fontSize}render(e,t,n,a=Ee.canvasOuterMargin){const s=Se("svg",{width:t.width,height:t.height,viewBox:`0 0 ${t.width} ${t.height}`,"font-family":Vs,"font-size":this.fontSize,class:"diagram"});s.append(Se("rect",{x:0,y:0,width:t.width,height:t.height,fill:"#fafafa"}));const r=a;s.append(Se("rect",{x:r,y:r,width:e.canvasSize.width-2*r-1,height:e.canvasSize.height-2*r-1,fill:"none",stroke:"black","stroke-width":Ee.outerFrameLineWidth}));const o=Se("g");for(const l of e.elements)this.drawNode(l,o,n,{},void 0,"method");return s.append(o),s}line(e,t){e.append(Se("polyline",{points:t.map(n=>n.join(",")).join(" "),fill:"none",stroke:"black","stroke-width":Ee.diagramLineWidth,"stroke-linejoin":"miter"}))}strokeCellBorder(e,t,n){const a=t.x,s=t.y,r=t.x+t.width,o=t.y+t.height;if(!n.top&&!n.left&&!n.bottom&&!n.right){e.append(Se("rect",{x:a,y:s,width:t.width,height:t.height,fill:"none",stroke:"black","stroke-width":Ee.diagramLineWidth}));return}n.top||this.line(e,[[a,s],[r,s]]),n.right||this.line(e,[[r,s],[r,o]]),n.bottom||this.line(e,[[r,o],[a,o]]),n.left||this.line(e,[[a,o],[a,s]])}textWidth(e){const t=iu(e);return t?this.measure(t.keyword,this.fontSize,"bold")+(t.rest===""?0:this.measure(" "+t.rest,this.fontSize,"medium")):this.measure(e,this.fontSize,"medium")}drawKeywordLine(e,t,n,a){const s=Se("text",{x:n,y:a+lu(this.fontSize,"medium").ascent,"font-weight":500});s.style.whiteSpace="pre";const r=iu(t);if(r){const o=Se("tspan",{"font-weight":700});if(o.textContent=r.keyword,s.append(o),r.rest!==""){const l=Se("tspan",{});l.textContent=" "+r.rest,s.append(l)}}else s.textContent=t;e.append(s)}drawLabel(e,t,n,a,s,r){const o=lu(this.fontSize,s?"bold":"medium"),l=Se("text",{x:n,y:r==="top"?a+o.ascent:a-o.descent,"font-weight":s?700:500});l.style.whiteSpace="pre",l.textContent=t,e.append(l)}roofMetrics(e,t,n,a){const s=t.y+n,r=e.dividerYInset??0,o=12,l=Math.max(e.element.textLines.length,1)*this.lineHeight,u=t.y+Ee.multiHeaderFirstLineY;if(e.element.type===T.fallauswahl){const c=Math.max(Ee.fallauswahlCaseLabelBand,this.lineHeight+10),d=s-c,h=Math.min(s+r,d-8),g=Math.max(h,u+l+6);return{apex:{x:a,y:g},maxTextBottom:d-o,roofBottom:s}}const m={x:a,y:s+r};return{apex:m,maxTextBottom:m.y-o,roofBottom:s}}drawNode(e,t,n,a,s,r){var _;const o=e.frame,l=e.element,u=o.x+o.width,m=o.y+o.height,c=l.type===T.verzweigung||l.type===T.fallauswahl,d=c?e.headerBandHeight:0,h=n!==void 0&&wo(e.idPath,n),g=Nl(l),f=Se("g",{"data-path":e.idPath.join(",")});t.append(f);const x=this.usesSimulationHighlight,b=l.backgroundColor,v=b&&b.a>0?`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a/255})`:"white",w=h&&(x||this.fillsSelection)?"rgba(199, 230, 255, 0.55)":v,z=rh(l.type)??(l.type===T.leerElement?r:"method"),I=Se("rect",{x:o.x,y:o.y,width:o.width,height:o.height,fill:w});w==="white"&&z&&I.setAttribute("class",`ns-scope ns-scope-${z}`),f.append(I),this.strokeCellBorder(f,o,a);const k=Ee.callSideBarInset;if(l.type===T.aufruf?(this.line(f,[[o.x+k,o.y],[o.x+k,m]]),this.line(f,[[u-k,o.y],[u-k,m]])):l.type===T.aussprung&&this.line(f,[[o.x+k,o.y],[o.x,o.y+o.height/2],[o.x+k,m]]),c&&e.dividerX!==void 0){const M=e.dividerX,O=this.roofMetrics(e,o,d,M),P=Math.max(g.length,1)*this.lineHeight,C=o.y+Ee.multiHeaderFirstLineY;this.line(f,[[o.x,o.y],[O.apex.x,O.apex.y],[u,o.y]]),l.type===T.fallauswahl&&this.line(f,[[o.x,O.roofBottom],[u,O.roofBottom]]);let B;C+P<=O.maxTextBottom?B=C:B=Math.max(o.y+2,O.maxTextBottom-(Math.max(g.length,1)-1)*this.lineHeight-this.lineHeight),g.forEach((E,U)=>{const ee=this.textWidth(E);let ge;if(l.type===T.verzweigung){const Ie=o.x+Ee.cellTextInsetX,fe=u-ee-Ee.cellTextInsetX;ge=Math.min(Math.max(M-ee/2,Ie),fe)}else ge=o.x+o.width/2-ee/2;this.drawKeywordLine(f,E,ge,B+U*this.lineHeight)})}else if(l.type!==T.doUntilSchleife)if(l.type===T.anweisung||l.type===T.aufruf||l.type===T.aussprung){const M=Ee.cellTextInsetX;let O=o.x+M,P=u-M;l.type===T.aufruf?(O=o.x+k+Ee.callTextInsetFromSideBar,P=u-k-Ee.callTextInsetFromSideBar):l.type===T.aussprung&&(O=o.x+k+M);const C=Math.max(0,P-O);let B=o.y+o.height/2-Math.max(1,g.length)*this.lineHeight/2;for(const E of g)this.drawKeywordLine(f,E,O+(C-this.textWidth(E))/2,B),B+=this.lineHeight}else{const M=Math.max(1,g.length)*this.lineHeight;let O=s===T.doUntilSchleife?o.y+o.height/2-M/2:o.y+Ee.cellTextInsetY;for(const P of g)this.drawKeywordLine(f,P,o.x+Ee.cellTextInsetX,O),O+=this.lineHeight}e.children.forEach((M,O)=>{const P=l.type===T.doUntilSchleife&&O===0?{top:!0,left:!0}:{};this.drawNode(M,t,n,P,l.type,z)});const S=Se("g");if(t.append(S),l.type===T.doUntilSchleife){const M=((_=e.children[0])==null?void 0:_.frame.x)??o.x+(e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:Ee.loopBodyLeadingInset);this.drawLabel(S,"do",o.x+4,o.y+this.metrics.doUntilDoLabelTopInset,!0,"top");const O=m-e.headerBandHeight;this.line(S,[[M,O],[u,O]]),this.line(S,[[M,o.y],[M,O]]);let P=O+this.metrics.doUntilFooterTopInset;for(const C of g)this.drawKeywordLine(S,C,o.x+Ee.cellTextInsetX,P),P+=this.lineHeight}if(c&&e.dividerX!==void 0&&e.caseColumnFrames.length>1){const M=this.roofMetrics(e,o,d,e.dividerX),O=M.apex;e.caseColumnFrames.forEach((C,B)=>{if(B>=e.caseColumnFrames.length-1)return;const E=C.x+C.width,U=i3(E,o,O),ee=Number.isFinite(U)?Math.min(Math.max(U,o.y),m):o.y;this.line(S,[[E,m],[E,ee]])});const P=l.cases;if(P&&P.length===e.caseColumnFrames.length){const C=l.type===T.fallauswahl?M.roofBottom-6:o.y+d-8,B=Ee.branchLabelInsetX;if(l.type===T.verzweigung&&P.length===2){this.drawLabel(S,"true",o.x+B,C,!0,"bottom");const E=e.caseColumnFrames[1],U=this.measure("false",this.fontSize,"bold");this.drawLabel(S,"false",E.x+E.width-B-U,C,!0,"bottom")}else P.forEach((E,U)=>{const ee=e.caseColumnFrames[U],ge=["default","true","false"].includes(E.name.toLowerCase()),Ie=this.measure(E.name,this.fontSize,ge?"bold":"medium");this.drawLabel(S,E.name,ee.x+ee.width/2-Ie/2,C,ge,"bottom")})}}h&&S.append(Se("rect",{x:o.x,y:o.y,width:o.width,height:o.height,class:"selection-frame",fill:"none",stroke:x?"rgba(66, 140, 242, 0.78)":"rgba(0, 122, 255, 0.9)","stroke-width":Ee.selectionLineWidth}))}}function i3(i,e,t){const n=e.y;if(i<=t.x){const s=t.x-e.x;return Math.abs(s)<.5?t.y:n+(t.y-n)/s*(i-e.x)}const a=e.x+e.width-t.x;return Math.abs(a)<.5?t.y:t.y+(n-t.y)/a*(i-t.x)}function wo(i,e){return i.length===e.length&&i.every((t,n)=>t===e[n])}function a3(i){const e=[],t=n=>{e.push(n),n.children.forEach(t)};return i.forEach(t),e}function is(i){var e,t;return{...i,textLines:Nl(i),loopBody:(e=i.loopBody)==null?void 0:e.map(is),cases:(t=i.cases)==null?void 0:t.map(n=>({name:n.name,elements:n.elements.map(is)}))}}const s3=[{code:"de",name:"Deutsch"},{code:"en",name:"English"},{code:"es",name:"Español"},{code:"fr",name:"Français"},{code:"it",name:"Italiano"},{code:"pl",name:"Polski"},{code:"tr",name:"Türkçe"},{code:"ko",name:"한국어"},{code:"ja",name:"日本語"},{code:"el",name:"Ελληνικά"},{code:"uk",name:"Українська"},{code:"ar",name:"العربية"},{code:"ru",name:"Русский"},{code:"he",name:"עברית"},{code:"nl",name:"Nederlands"},{code:"sv",name:"Svenska"},{code:"da",name:"Dansk"},{code:"nb",name:"Norsk bokmål"},{code:"zh-Hans",name:"中文(简体)"},{code:"zh-Hant",name:"中文(繁體)"},{code:"pt-PT",name:"Português"},{code:"java",name:"Java (Keywords)"}],lh=["de","en","pt-PT"],uh=s3.filter(i=>lh.includes(i.code)),pu=i=>lh.includes(i),r3=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CxCno28C.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BAutdlBb.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings":()=>K(()=>import("./Localizable-Dk8F86qS.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings":()=>K(()=>import("./Localizable-rqA-20hM.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DBLIUcBd.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings":()=>K(()=>import("./Localizable-LSTVB2Q5.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings":()=>K(()=>import("./Localizable-ByPZS4RL.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings":()=>K(()=>import("./Localizable-R-16GCrk.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DXAPah1g.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CkJEmEEP.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BudCXCER.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DSvkBkp-.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BJ55WGVD.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BYJK0mdR.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CHv0OL9S.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings":()=>K(()=>import("./Localizable-1QZ0wfvJ.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings":()=>K(()=>import("./Localizable-M33nNbEe.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings":()=>K(()=>import("./Localizable-BM86Igqt.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings":()=>K(()=>import("./Localizable-UGog_aku.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings":()=>K(()=>import("./Localizable-CaVEL1es.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings":()=>K(()=>import("./Localizable-DqIDp_hh.js"),[],import.meta.url).then(i=>i.default)}),mh=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Java.strings":()=>K(()=>import("./Java-Bpx1Vwvg.js"),[],import.meta.url).then(i=>i.default)}),o3=Object.assign({"../i18n/ar.strings":()=>K(()=>import("./ar-uZ_mV_Na.js"),[],import.meta.url).then(i=>i.default),"../i18n/da.strings":()=>K(()=>import("./da-C8aaC9z5.js"),[],import.meta.url).then(i=>i.default),"../i18n/de.strings":()=>K(()=>import("./de-Co2EVty-.js"),[],import.meta.url).then(i=>i.default),"../i18n/el.strings":()=>K(()=>import("./el-BlQcOTEr.js"),[],import.meta.url).then(i=>i.default),"../i18n/en.strings":()=>K(()=>import("./en-DCZQrvHo.js"),[],import.meta.url).then(i=>i.default),"../i18n/es.strings":()=>K(()=>import("./es-DA9G5_P_.js"),[],import.meta.url).then(i=>i.default),"../i18n/fr.strings":()=>K(()=>import("./fr-yaOEtLAD.js"),[],import.meta.url).then(i=>i.default),"../i18n/he.strings":()=>K(()=>import("./he-DhhDsw0I.js"),[],import.meta.url).then(i=>i.default),"../i18n/it.strings":()=>K(()=>import("./it-C4u42T79.js"),[],import.meta.url).then(i=>i.default),"../i18n/ja.strings":()=>K(()=>import("./ja-WE8XI1hF.js"),[],import.meta.url).then(i=>i.default),"../i18n/ko.strings":()=>K(()=>import("./ko-BmWPgd-B.js"),[],import.meta.url).then(i=>i.default),"../i18n/nb.strings":()=>K(()=>import("./nb-C5ktjao7.js"),[],import.meta.url).then(i=>i.default),"../i18n/nl.strings":()=>K(()=>import("./nl-D84YMRy6.js"),[],import.meta.url).then(i=>i.default),"../i18n/pl.strings":()=>K(()=>import("./pl-DWX5XtXe.js"),[],import.meta.url).then(i=>i.default),"../i18n/pt-PT.strings":()=>K(()=>import("./pt-PT-Dln8jTsC.js"),[],import.meta.url).then(i=>i.default),"../i18n/ru.strings":()=>K(()=>import("./ru-oTax2zks.js"),[],import.meta.url).then(i=>i.default),"../i18n/sv.strings":()=>K(()=>import("./sv-DEFroOFk.js"),[],import.meta.url).then(i=>i.default),"../i18n/tr.strings":()=>K(()=>import("./tr-Cmdsrvdm.js"),[],import.meta.url).then(i=>i.default),"../i18n/uk.strings":()=>K(()=>import("./uk-CRlpTSkg.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hans.strings":()=>K(()=>import("./zh-Hans-D9vdrX4y.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hant.strings":()=>K(()=>import("./zh-Hant-CetLy6Gl.js"),[],import.meta.url).then(i=>i.default)});function Fa(i,e){var t;return(t=Object.entries(i).find(([n])=>n.endsWith(e)))==null?void 0:t[1]}function ch(i){const e=new Map,t=i.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*\/\/.*$/gm,""),n=/"((?:[^"\\]|\\.)*)"\s*=\s*"((?:[^"\\]|\\.)*)"\s*;/g,a=s=>s.replace(/\\(u[0-9a-fA-F]{4}|.)/g,(r,o)=>o==="n"?` +`:o==="t"?" ":o.startsWith("u")&&o.length===5?String.fromCharCode(parseInt(o.slice(1),16)):o);for(const s of t.matchAll(n))e.set(a(s[1]),a(s[2]));return e}async function zo(i){const e=i==="java"?Fa(mh,"/Java.strings"):Fa(r3,`/${i}.lproj/Localizable.strings`),t=Fa(o3,`/${i}.strings`),n=new Map;for(const a of[e,t])if(a)for(const[s,r]of ch(await a()))n.set(s,r);return n}let dh="en",hh=new Map,Kn=new Map;const as="appLanguageCode",Vl="visustruct.keywords";let Io=new Map,Ql=!1;const l3=i=>i.startsWith("element_")||i.startsWith("canvas_stub_");function u3(){try{const i=new URLSearchParams(location.search).get("lang")==="java"||localStorage.getItem(as)==="java";return i&&(localStorage.setItem(as,"en"),localStorage.setItem(Vl,"1")),i}catch{return!1}}function m3(){try{return localStorage.getItem(Vl)==="1"}catch{return!1}}async function gh(i,e=!0){if(i&&Io.size===0){Kn.size===0&&(Kn=await zo("en"));const t=Fa(mh,"/Java.strings");if(t)for(const[n,a]of ch(await t()))l3(n)&&a!==Kn.get(n)&&Io.set(n,a)}if(Ql=i,e)try{localStorage.setItem(Vl,i?"1":"0")}catch{}}function c3(){return Ql}function d3(){if(u3())return"en";const i=new URLSearchParams(location.search).get("lang");if(i&&pu(i))return i;try{const e=localStorage.getItem(as);if(e&&pu(e))return e}catch{}for(const e of navigator.languages??[navigator.language]){const t=e.toLowerCase();if(t.startsWith("pt"))return"pt-PT";const n=uh.find(a=>a.code===t.split("-")[0]);if(n)return n.code}return"en"}async function ph(i,e=!0){if(Kn.size===0&&(Kn=await zo("en")),hh=i==="en"?Kn:await zo(i),dh=i,e)try{localStorage.setItem(as,i)}catch{}const t=document.documentElement;t.lang=i==="java"?"en":i,t.dir=i==="ar"||i==="he"?"rtl":"ltr"}function r1(){return dh}function p(i,...e){const t=(Ql?Io.get(i):void 0)??hh.get(i)??Kn.get(i)??i;if(e.length===0)return t;let n=0;return t.replace(/%(?:(\d+)\$)?[@d]/g,(a,s)=>String(e[s?Number(s)-1:n++]??""))}const ss=243,h3=244,fh=40,yr=4,g3=1;function ql(i){const e=i.length,t=ss+(e&255)+(e>>8)&255,n=i.reduce((a,s)=>a+s,0)&255;return Uint8Array.from([ss,t,e&255,e>>8,...i,n,h3])}function p3(i,e,t){const n=Array.from(new TextEncoder().encode(i));return ql([fh,e,t&255,t>>8&255,n.length&255,n.length>>8,...n])}function f3(i){if(i[0]!==fh||i.length<6)return;const e=new TextDecoder().decode(Uint8Array.from(i.slice(6))),t=/"ret"\s*:\s*([^}]*)\}/.exec(e);return t?{idx:i[2]|i[3]<<8,value:b3(t[1].trim())}:void 0}function x3(i){const e=[];for(;;){const t=i.indexOf(ss);if(t<0){i.length=0;break}if(i.splice(0,t),i.length<4)break;const n=i[2]|i[3]<<8;if(i[1]!==(ss+i[2]+i[3]&255)||n>4096){i.splice(0,1);continue}if(i.lengthArray.from({length:e},(t,n)=>i>>>8*n&255);function z3(i){let e=0;for(let t=0;t>>0;return mi(e,4)}const wr=(i,e)=>Ql([1,0,xh,i,...mi(e.length,2),...e]);function I3(i,e=v3){const t=new TextEncoder().encode(i),n=(4-t.length%V1+V1)%V1,a=new Uint8Array(t.length+n).fill(10);a.set(t);const s=[wr(1,[0,...mi(a.length,4),...z3(a),...Array.from(new TextEncoder().encode(e))])],r=a.length-4;for(let o=0;oi.length===3&&i[0]===13,S3=i=>i.length===7||i.some((e,t)=>e===xh&&i[t+1]===240),bh=()=>typeof navigator>"u"?void 0:navigator.serial,zr=()=>bh()!==void 0,T3=(...i)=>`exec(${JSON.stringify(i.join("; "))})`,qs=(i,e=24)=>T3("cyberpi.display.clear()",`cyberpi.display.show_label(${JSON.stringify(i)}, ${e}, 'center')`),vh=qs("VisuBot",32);class _3{constructor(){y(this,"port");y(this,"writer");y(this,"reader");y(this,"loop");y(this,"rx",[]);y(this,"idx",1);y(this,"frameWaiters",[]);y(this,"waiting",new Map);y(this,"queue",Promise.resolve());y(this,"listeners",new Set);y(this,"error");y(this,"connecting",!1)}listen(e){return this.listeners.add(e),()=>this.listeners.delete(e)}changed(){for(const e of this.listeners)e()}get connected(){return this.writer!==void 0&&!this.connecting}async connect(){const e=bh();if(!e)throw new Error("Web Serial");const t=await e.requestPort();await t.open({baudRate:115200}),this.port=t,this.writer=t.writable.getWriter(),this.error=void 0,this.connecting=!0,this.changed(),this.loop=this.readLoop(),window.addEventListener("pagehide",()=>void this.disconnect(),{once:!0}),await new Promise(n=>setTimeout(n,3e3)),this.writer&&(this.rx.length=0,this.connecting=!1,this.changed(),await this.run(vh))}async disconnect(e){if(!this.port)return this.error=e,this.changed();if(!e&&this.writer&&!this.connecting)for(const r of["mbot2.EM_stop('ALL')","cyberpi.led.off()",qs("Bis bald!")])await this.send(r,yr,2e3).catch(()=>{});const t=this.port,n=this.writer,a=this.reader,s=this.loop;this.port=this.writer=this.reader=this.loop=void 0,this.error=e,this.connecting=!1;for(const r of this.waiting.values())r.reject(new Error(e??"getrennt"));this.waiting.clear();try{await(a==null?void 0:a.cancel()),await s,await(n==null?void 0:n.close())}catch{}try{n==null||n.releaseLock(),await t.close()}catch(r){console.warn("[mBot2] Schließen",r.message)}this.changed()}run(e){return this.send(e,yr,3e4).then(()=>{})}ask(e){return this.send(e,g3,3e3)}async upload(e,t=()=>{}){if(this.port||await this.connect(),!this.writer)throw new Error(this.error??"nicht verbunden");const n=I3(e),a=6+n.length+3;let s=0;const r=()=>t(++s,a),o=async()=>{await this.sendFrame(Ql(y3),k3),r();for(const l of w3)await this.send(l,yr,3e3),r()};await o(),await o();for(const l of n)await this.sendFrame(l,S3),r();s=a-3,await o(),await this.restart()}sendFrame(e,t){const n=this.queue.then(async()=>{for(let a=0;a<3;a++){if(!this.writer)throw new Error("nicht verbunden");let s=()=>{};const r=new Promise(u=>s=u),o={match:t,resolve:s};this.frameWaiters.push(o),await this.writer.write(e);const l=await Promise.race([r.then(()=>!0),new Promise(u=>setTimeout(()=>u(!1),3e3))]);if(this.frameWaiters=this.frameWaiters.filter(u=>u!==o),l)return}throw new Error("keine Antwort")});return this.queue=n.catch(()=>{}),n}async restart(){const e=this.port;await this.disconnect("restart"),this.error=void 0,await new Promise(t=>setTimeout(t,300)),await e.open({baudRate:115200}),await new Promise(t=>setTimeout(t,500)),await e.close(),this.changed()}send(e,t,n){const a=this.queue.then(()=>new Promise((s,r)=>{if(!this.writer)return r(new Error("nicht verbunden"));const o=this.idx;this.idx=this.idx%65535+1;const l=setTimeout(()=>{this.waiting.delete(o),r(new Error("keine Antwort"))},n);this.waiting.set(o,{resolve:u=>(clearTimeout(l),s(u)),reject:u=>(clearTimeout(l),r(u))}),this.writer.write(p3(e,t,o)).catch(u=>{this.waiting.delete(o),r(u)})}));return this.queue=a.catch(()=>{}),a}async readLoop(){var e;for(;(e=this.port)!=null&&e.readable;){const t=this.port.readable.getReader();this.reader=t;try{for(;;){const{value:n,done:a}=await t.read();if(a)break;this.rx.push(...n);for(const s of x3(this.rx)){const r=this.frameWaiters.findIndex(u=>u.match(s));r>=0&&this.frameWaiters.splice(r,1)[0].resolve();const o=f3(s);if(!o)continue;const l=this.waiting.get(o.idx);this.waiting.delete(o.idx),l==null||l.resolve(o.value)}}}catch(n){const a=["BufferOverrunError","FramingError","BreakError","ParityError"].includes(n.name);console.warn("[mBot2] Lesefehler",n.name,n.message),!a&&this.port&&this.disconnect(n.message)}finally{t.releaseLock()}if(!this.writer)break}}}const pe=new _3,yh=5,j3=i=>Number.isInteger(i)&&i>=0&&iString(Math.round(i*100)/100),Si={forward:{args:1,defaults:[fu],python:([i])=>`mbot2.straight(${ke(i)})`,label:([i])=>`${ke(i)} cm vorwärts`},backward:{args:1,defaults:[fu],python:([i])=>`mbot2.straight(${ke(-i)})`,label:([i])=>`${ke(i)} cm rückwärts`},turnLeft:{args:1,defaults:[90],python:([i])=>`mbot2.turn(${ke(-i)})`,label:([i])=>`${ke(i)}° nach links drehen`},turnRight:{args:1,defaults:[90],python:([i])=>`mbot2.turn(${ke(i)})`,label:([i])=>`${ke(i)}° nach rechts drehen`},stop:{args:0,python:()=>'mbot2.EM_stop("ALL")',label:()=>"anhalten"},drive:{args:2,python:([i,e])=>`mbot2.drive_power(${ke(i)}, ${ke(-e)})`,label:([i,e])=>`Räder links ${ke(i)} %, rechts ${ke(e)} %`},setLed:{args:3,python:([i,e,t])=>`cyberpi.led.on(${ke(i)}, ${ke(e)}, ${ke(t)})`,label:([i,e,t])=>`LEDs (${ke(i)}, ${ke(e)}, ${ke(t)})`},ledOff:{args:0,python:()=>"cyberpi.led.off()",label:()=>"LEDs aus"},ledColor:{args:1,text:!0,choices:Object.keys(rs),valid:([i])=>j3(i),python:([i],e)=>`cyberpi.led.on(${rs[e].join(", ")}, id=${i+1})`,label:([i],e)=>`LED ${i}: ${e}`},playTone:{args:2,python:([i,e])=>`cyberpi.audio.play_tone(${ke(i)}, ${ke(e/1e3)})`,label:([i,e])=>`Ton ${ke(i)} Hz, ${ke(e)} ms`},pause:{args:1,label:([i])=>`${ke(i)} ms warten`},resetTimer:{args:0,python:()=>"cyberpi.timer.reset()",label:()=>"Stoppuhr auf 0"},emotion:{args:0,text:!0,choices:C3,python:(i,e)=>`cyberpi.emotion.${e}()`,label:(i,e)=>`Gefühl: ${e}`},showText:{args:0,text:!0,python:(i,e)=>qs(e),label:(i,e)=>`Bildschirm: ${e}`}},xu={red:{de:"rot",en:"red"},green:{de:"grün",en:"green"},blue:{de:"blau",en:"blue"},yellow:{de:"gelb",en:"yellow"},cyan:{de:"türkis",en:"cyan"},purple:{de:"lila",en:"purple"},white:{de:"weiß",en:"white"},black:{de:"schwarz",en:"black"}};let Ul="en";function A3(i){Ul=i==="de"?"de":"en"}const P3=()=>Ul;function wh(i){const e=i.trim().toLowerCase(),t=xu[e]??Object.values(xu).find(n=>n.de===e);return t?t[Ul]:e}const c1=i=>({python:`cyberpi.controller.is_press('${i}')`,simulated:!1}),Ct={getDistance:{python:"mbuild.ultrasonic2.get(1)",simulated:100},getLine:{python:"mbuild.quad_rgb_sensor.get_line_sta('all', 1)",simulated:0},isLineLeft:{python:"mbuild.quad_rgb_sensor.is_line('L1', 1)",simulated:!1},isLineRight:{python:"mbuild.quad_rgb_sensor.is_line('R1', 1)",simulated:!1},getColor:{python:"mbuild.quad_rgb_sensor.get_color_sta('L1', 1)",simulated:"white"},isButtonA:c1("a"),isButtonB:c1("b"),isJoystickUp:c1("up"),isJoystickDown:c1("down"),isJoystickLeft:c1("left"),isJoystickRight:c1("right"),getBrightness:{python:"cyberpi.get_bri()",simulated:50},getLoudness:{python:"cyberpi.get_loudness('maximum')",simulated:0},getPitch:{python:"cyberpi.get_pitch()",simulated:0},getRoll:{python:"cyberpi.get_roll()",simulated:0},isShaken:{python:"cyberpi.is_shake()",simulated:!1},getBattery:{python:"cyberpi.get_battery()",simulated:100},getTimer:{python:"cyberpi.timer.get()",simulated:0}};function O3(i){const e=new Set;for(const t of i.matchAll(/\bmbot\s*\.\s*([A-Za-z_]\w*)\s*\(\s*\)/gu))t[1]in Ct&&e.add(t[1]);return[...e]}function D3(i){const e=/^mbot\s*\.\s*led\s*\(([^()]*(?:\([^()]*\)[^()]*)*)\)\s*\.\s*setColor\s*\(([\s\S]*)\)\s*;?$/u.exec(i.trim());if(e)return{method:"ledColor",args:[e[1].trim(),e[2].trim()]};const t=/^mbot\s*\.\s*([A-Za-z_]\w*)\s*\(([\s\S]*)\)\s*;?$/u.exec(i.trim());if(!t)return;const n=t[2].trim();return{method:t[1],args:n===""?[]:Z3(n)}}function os(i,e){const t=Si[i];if(!t)return;const n=e.length===0&&t.defaults?t.defaults:e;if(n.length===t.args)return!t.valid||t.valid(n)?n:void 0}function bu(i,e,t=""){var a;const n=Si[i];return{method:i,args:e,python:(a=n.python)==null?void 0:a.call(n,e,t),waitMs:i==="pause"?Math.max(0,e[0]):void 0,label:n.label(e,t),...n.text?{text:t}:{}}}function zh(i){return i.map(e=>[e.method,...e.args.map(ke),...e.text!==void 0?[JSON.stringify(e.text)]:[]].join(" "))}function M3(i){let e=0;const t=i.trim(),n=()=>{const s=[];for(;;){for(;t[e]===" "||t[e]===",";)e++;if(e>=t.length||t[e]===")")return s;const r=/^(\d+)\s*[x×]\s*\(/u.exec(t.slice(e));if(r){e+=r[0].length;const c=n();if(t[e]!==")")throw new Error(`„)“ fehlt in „${i}“`);e++;for(let d=0;d{if(!(n in Ct))return t;const a=e(n);return typeof a=="string"?JSON.stringify(n==="getColor"?wh(a):a):String(a)}):i}function Z3(i){const e=[];let t=0,n=!1,a=0;for(let s=0;s{const a=t==="turn"?((n+180)%360+360)%360-180:n;if(Math.abs(a)<1e-6)return[];const s=Math.round(Math.abs(a)*100)/100;return t==="drive"?[`${a>0?"forward":"backward"} ${s}`]:[a===-180?"turnRight 180":`${a>0?"turnRight":"turnLeft"} ${s}`]})}function Ih(i){let e=0;const t=i.trim(),n=()=>{const s=[];for(;;){for(;t[e]===" "||t[e]===",";)e++;if(e>=t.length||t[e]===")")return s;const r=/^(\d+)\s*[x×]\s*\(/u.exec(t.slice(e));if(r){e+=r[0].length;const u=n();if(t[e]!==")")throw new Error(`„)“ fehlt in „${i}“`);e++;for(let m=0;ma===i[s%t])){const a=ii(i.slice(0,t));return`${n} x ${t===1?a:`(${a})`}`}}return i.join(", ")}const kh=["cyberpi","screen","joystick","buttons","leds","lightSensor","microphone","shield","powerSwitch","motors","wheels","ultrasonic","lineSensor","caster","chassis"],L3=i=>kh.includes(i),W3=100;function Sh(i){switch(i.kind){case"finished":return"Simulation finished.";case"infiniteLoopWithoutBody":return"Infinite loop has no body.";case"unsupportedStatement":return`Unsupported statement: ${i.text}`;case"invalidExpression":return`Invalid expression: ${i.text}`;case"unknownVariable":return i.similar?`Unknown variable: ${i.text}. Java is case-sensitive: did you mean ${i.similar}?`:`Unknown variable: ${i.text}`;case"divisionByZero":return"Division by zero.";case"wholeNumberExpected":return"Please enter a whole number.";case"numberExpected":return"Please enter a number.";case"booleanExpected":return"Please enter true or false.";case"subprogramNotFound":return`No open diagram is called ${i.text}. The call was skipped.`;case"callTooDeep":return"Too many nested calls. Does a subprogram call itself?";case"callArguments":return`The call does not match the header of ${i.text}. Check the values in the parentheses.`;case"missingReturn":return`${i.text} ended without returning a value with return.`;case"fileNotFound":return`There is no file called ${i.text}.`;case"endOfFile":return`The file ${i.text} has no more lines.`;case"nullValue":return`${i.text} is null.`;case"other":return i.text}}class Re extends Error{constructor(e){super(Sh(e)),this.notice=e}}const Ke=i=>new Re({kind:"unsupportedStatement",text:i}),R=i=>new Re({kind:"invalidExpression",text:i}),p1=(i,e)=>{const t=e&&[...e.keys()].find(n=>n!==i&&n.toLowerCase()===i.toLowerCase());return new Re(t?{kind:"unknownVariable",text:i,similar:t}:{kind:"unknownVariable",text:i})},E3=()=>new Re({kind:"divisionByZero"}),us=new Map;function N3(i,e){us.set(i,e)}const Th=()=>[...us];function vu(i){return i instanceof Re?i.notice:{kind:"other",text:i instanceof Error?i.message:String(i)}}function F3(i){if(i===0)return"0";if(!Number.isFinite(i))return Number.isNaN(i)?"nan":i>0?"inf":"-inf";const e=Math.floor(Math.log10(Math.abs(Number(i.toPrecision(12)))));if(e<-4||e>=12){const[n,a]=i.toExponential(11).split("e"),s=n.includes(".")?n.replace(/0+$/,"").replace(/\.$/,""):n,r=Number(a);return`${s}e${r<0?"-":"+"}${String(Math.abs(r)).padStart(2,"0")}`}const t=i.toFixed(Math.max(0,11-e));return t.includes(".")?t.replace(/0+$/,"").replace(/\.$/,""):t}function yu(i){return Number.isFinite(i)&&Math.round(i)===i?i.toFixed(1):F3(i)}function _e(i){switch(i.kind){case"int":return String(i.value);case"double":return yu(i.value);case"string":return i.value;case"boolean":return String(i.value);case"intArray":return"["+i.value.map(String).join(", ")+"]";case"doubleArray":return"["+i.value.map(yu).join(", ")+"]";case"stringArray":return"["+i.value.join(", ")+"]";case"booleanArray":return"["+i.value.map(String).join(", ")+"]";case"grid":return"["+J3(i).join(", ")+"]";case"reader":return`${i.className}(${i.file})`;case"writer":return`PrintWriter(${i.file})`;case"null":return"null"}}function J3(i){return i.value.map(e=>"["+e.map(t=>_e(ko(i.elementType,t))).join(", ")+"]")}function ko(i,e){switch(i){case"int":return{kind:"int",value:e};case"double":return{kind:"double",value:e};case"string":return{kind:"string",value:e};case"boolean":return{kind:"boolean",value:e}}}function wu(i){return i==="string"?"":i==="boolean"?!1:0}function So(i){return i.kind==="intArray"||i.kind==="doubleArray"||i.kind==="stringArray"||i.kind==="booleanArray"||i.kind==="grid"}function R3(i){return i.kind==="int"||i.kind==="double"?i.value:NaN}const kt=i=>({kind:"int",value:i}),St=i=>({kind:"double",value:i}),$l=i=>i!==void 0&&/\s/u.test(i),ms=i=>new RegExp("\\p{L}","u").test(i),ai=i=>new RegExp("\\p{N}","u").test(i);function ci(i){const e=Array.from(i);return e.length===0||!(ms(e[0])||e[0]==="_")?!1:e.every(t=>ms(t)||ai(t)||t==="_")}function tn(i){switch(i.toLowerCase()){case"int":return"int";case"double":return"double";case"string":return"string";case"char":return"string";case"boolean":case"bool":return"boolean";default:return}}function zu(i){return i.kind==="int"?"int":i.kind==="double"?"double":i.kind==="boolean"?"boolean":"string"}function lt(i){const e=Array.from(i);if(e.length===3&&e[0]==="'"&&e[2]==="'")return e[1];if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return;const t=e.slice(1,-1).join("");if(/^(?:[^"\\]|\\.)*$/u.test(t))return t.replaceAll('\\"','"').replaceAll("\\n",` -`)}function Iu(i){return i.replaceAll("(int)","").replaceAll("(double)","").trim()}function Yl(i){const e=new Array(i.length).fill(!1);let t=0,n=!1,a=!1;return i.forEach((s,r)=>{if(n){a?a=!1:s==="\\"?a=!0:s==='"'&&(n=!1);return}switch(s){case'"':n=!0;break;case"(":case"[":t+=1;break;case")":case"]":t-=1;break;default:e[r]=t===0}}),e}function cs(i,e){const t=Array.from(i),n=Array.from(e),a=Yl(t),s=[];let r=[],o=0;for(;ot[o+m]===u)&&a.slice(o,l).every(Boolean)){s.push(r.join("").trim()),r=[],o=l;continue}r.push(t[o]),o+=1}return s.push(r.join("").trim()),s}function G3(i){const e=Array.from(i),t=Yl(e);for(let n=0;n=","<=","==","!="].includes(o)&&(a=o)}if(a===void 0&&(e[n]==="<"||e[n]===">")&&(a=e[n]),a===void 0)continue;const s=e.slice(0,n).join("").trim(),r=e.slice(n+a.length).join("").trim();return{lhs:s,op:a,rhs:r}}}function Qs(i,e){let t=0,n=!1,a=!1;for(let s=e;se.length||!t.every((r,o)=>e[a+o]===r))continue;const s=a+t.length-1;if(Qs(e,s)===e.length-1)return{lhs:e.slice(0,a).join("").trim(),rhs:e.slice(s+1,-1).join("").trim()}}}function aa(i){const e=i.trim();for(const t of["if","while","until","switch"]){if(!e.startsWith(t))continue;const n=e.slice(t.length);if(!(n===""||$l(n[0])||n[0]==="("))continue;let a=n.trim();const s=_h(a);return s!==void 0&&(a=s),a===""?"true":a}return e===""?"true":e}function f1(i){const e=i.trim(),t=e.indexOf("[");if(!e.endsWith("]")||t<0)return;const n=e.slice(0,t).trim();if(!ci(n))return;const a=[];let s=t;for(;s2))return{arrayName:n,indexExpressions:a}}function V3(i){const e=i.trim();if(!e.endsWith(")"))return;const t=/^([A-Za-z_]\w*(?:\s*\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*([A-Za-z_]\w*)\s*\(/u.exec(e);if(!t)return;const n=Array.from(e),a=Array.from(t[0]).length-1;if(Qs(n,a)!==n.length-1)return;const s=n.slice(a+1,-1).join("").trim();return{target:t[1],method:t[2],args:s===""?[]:cs(s,",")}}function ku(i){return ci(i)||f1(i)!==void 0}function Ir(i){const e=[];let t="",n=!1,a=!1,s=0;for(const r of i){if(a){t+=r,a=!1;continue}if(r==="\\"){t+=r,a=!0;continue}if(r==='"'){n=!n,t+=r;continue}if(!n&&r==="("&&(s+=1),!n&&r===")"&&(s-=1),r==="+"&&!n&&s===0){e.push(t),t="";continue}t+=r}if(n)throw R(i);return e.push(t),e}function q3(i){const e=[];let t=0,n="";for(const a of i){if(a==="{"&&(t+=1),a==="}"&&(t-=1),a===","&&t===0){e.push(n),n="";continue}n+=a}return n.trim()!==""&&e.push(n),e}function Su(i){const e=Array.from(i),t=[];let n=0;for(;n1)throw R(i)}else if(!ai(e[n]))break;n+=1}const o=e.slice(s,n).join("");if(o==="."||!/^[0-9]*\.?[0-9]*$/.test(o))throw R(i);t.push({t:"number",literal:o,value:Number(o)});continue}if(ms(a)||a==="_"){const s=n;for(;n=0&&s=0&&o=0&&s|&&|\|\||^\s*!/u.test(e)}function e1(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function _u(i){const e=i.slice(0,3);for(;e.length<3;)e.push("");return e}function _o(i){const e=i.map(t=>e1(t).trim());return e.length===1&&e[0].includes(";")?_u(e[0].split(";").map(t=>t.trim())):_u(e)}const dt=i=>i.frame?{frame:i.frame,callPath:i.callPath}:{};function $t(i,e=[],t={}){const n=[],a=s=>n.push(t.frame?{...s,...t}:s);return i.forEach((s,r)=>{const o=[...e,r],l=s.textLines.join(" ").trim();switch(s.type){case T.anweisung:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"statement"});break;case T.verzweigung:a({path:o,text:l||"true",kind:"branch",cases:s.cases});break;case T.fallauswahl:a({path:o,text:l||"0",kind:"switchSelection",cases:s.cases});break;case T.forSchleife:a({path:o,text:l,kind:"forLoopStart",loopBody:s.loopBody,forParts:_o(s.textLines)});break;case T.whileSchleife:a({path:o,text:l||"true",kind:"whileLoop",loopBody:s.loopBody});break;case T.doUntilSchleife:a({path:o,text:l||"true",kind:"doUntilLoop",loopBody:s.loopBody});break;case T.endlosschleife:a({path:o,text:l||"true",kind:"infiniteLoop",loopBody:s.loopBody});break;case T.aussprung:a({path:o,text:l,kind:"jump"});break;case T.aufruf:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"call"});break}}),n}function U3(i,e){const t=i.trim().replaceAll(",",".");switch(e){case"int":if(!/^[+-]?[0-9]+$/.test(t))throw new Re({kind:"wholeNumberExpected"});return kt(Number(t));case"double":if(!/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$/.test(t))throw new Re({kind:"numberExpected"});return St(Number(t));case"string":return{kind:"string",value:i};case"boolean":switch(t.toLowerCase()){case"true":case"wahr":return{kind:"boolean",value:!0};case"false":case"falsch":return{kind:"boolean",value:!1};default:throw new Re({kind:"booleanExpected"})}}}function ju(){return{stepIndex:0,variables:new Map,outputLines:[],isHalted:!1,files:new Map,robotActions:[]}}function $3(i,e){for(let t=0;tt===e.path[n])}function It(i){const e=/^(void|int|double|String|boolean)\s+([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(e1(i));if(!e)return;const t=[];if(e[3].trim()!=="")for(const n of e[3].split(",")){const a=/^(int|double|String|boolean|char)\s*((?:\[\s*\]){0,2})\s+([A-Za-z_]\w*)$/u.exec(n.trim());if(!a)return;const s=(a[2].match(/\[/gu)??[]).length;t.push({type:tn(a[1]),name:a[3],...s>0?{dims:s}:{}})}return{returnType:tn(e[1]),name:e[2],params:t}}function jh(i){const e=/^(?:(?:(int|double|String|boolean)\s+)?([A-Za-z_]\w*)\s*=\s*)?([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(e1(i));if(e)return{targetType:e[1]?tn(e[1]):void 0,target:e[2],name:e[3],args:e[4].trim()===""?[]:cs(e[4],",")}}function ds(i){var t,n;const e=e1(i);return((t=It(e))==null?void 0:t.name)??((n=jh(e))==null?void 0:n.name)??e.replace(/\(\s*\)$/u,"").trim()}class Ti{constructor(e,t=()=>{}){y(this,"steps");y(this,"state",ju());y(this,"nextFrame",1);y(this,"callDepth",0);y(this,"frames",new Map);y(this,"peeking",!1);y(this,"robotSensors",{});y(this,"pseudocode");y(this,"decided");y(this,"afterOutput",!1);this.resolveSubprogram=t,this.steps=$t(e.elements),this.pseudocode=!!e.pseudocode}get currentStepPath(){const e=this.steps[this.state.stepIndex];return(e==null?void 0:e.callPath)??(e==null?void 0:e.path)}get canStep(){return!this.state.isHalted&&!this.state.inputRequest&&this.state.stepIndex ${_e(n)}`}catch(n){this.state.inputErrorNotice=vu(n);return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.state.stepIndex+=1,this.state.notice=this.finishedIfAtEnd()}}provideDecision(e){var s;if(((s=this.state.inputRequest)==null?void 0:s.valueType)==="string")return this.state.inputRequest=void 0,this.decided=e.trim(),this.step();const t=e.trim().toLowerCase(),n=["true","wahr","ja","yes","sim","verdadeiro"].includes(t),a=["false","falsch","nein","no","não","nao","falso"].includes(t);if(!n&&!a){this.state.inputErrorNotice={kind:"booleanExpected"};return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.decided=n,this.step()}condition(e){if(!this.pseudocode)return this.evaluateBool(e);const t=this.decided;if(typeof t=="boolean")return this.decided=void 0,t;this.state.inputRequest={variableName:"",valueType:"boolean",prompt:`${e} (true/false)`,decision:!0},this.state.inputErrorNotice=void 0,this.state.notice=void 0}finishedIfAtEnd(){return this.state.stepIndex>=this.steps.length?{kind:"finished"}:void 0}splice(e){this.steps.splice(this.state.stepIndex,1,...e)}noticeAfterEntering(e){return e.length>0?void 0:this.finishedIfAtEnd()}executeBranch(e){const t=e.cases;if(!t||t.length<2)throw Ke(e.text);const n=aa(e.text),a=this.condition(n);if(a===void 0)return;const s=a?0:1,r=$t(t[s].elements,[...e.path,s],dt(e));this.splice(r),this.state.lastTrace=`${n} -> ${a}`,this.state.notice=this.noticeAfterEntering(r)}executeSwitchSelection(e){const t=e.cases;if(!t||t.length===0)throw Ke(e.text);const n=aa(e.text);let a;if(this.pseudocode){const r=this.decided;if(typeof r!="string"){const l=t.map(u=>u.name).join(" / ");this.state.inputRequest={variableName:"",valueType:"string",prompt:`${n} (${l})`,decision:!0},this.state.notice=void 0;return}this.decided=void 0;const o=t.findIndex(l=>l.name.trim().toLowerCase()===r.toLowerCase());a=o>=0?o:t.length-1}else a=$3(this.evaluateSwitchSelector(n),t)??t.length-1;const s=$t(t[a].elements,[...e.path,a],dt(e));this.splice(s),this.state.lastTrace=`${n} -> ${t[a].name}`,this.state.notice=this.noticeAfterEntering(s)}executeForLoopStart(e){if(this.pseudocode)return this.splice([{...e,kind:"whileLoop"}]);const t=_o(e.forParts??[e.text]);t[0]!==""&&this.executeStatement(t[0]),this.splice([{...dt(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}executeForLoopCondition(e){const t=_o(e.forParts??[e.text]),n=t[1]===""?"true":t[1],a=this.condition(n);if(a!==void 0)if(this.state.lastTrace=`${n} -> ${a}`,a){const s=$t(e.loopBody??[],[...e.path,0],dt(e));this.splice([...s,{...dt(e),path:e.path,text:t[2],kind:"forLoopIncrement",loopBody:e.loopBody,forParts:t},{...dt(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}executeForLoopIncrement(e){const t=e.text.trim();t!==""&&this.executeIncrement(t),this.splice([])}executeWhileLoop(e){const t=aa(e.text),n=this.condition(t);if(n!==void 0)if(this.state.lastTrace=`${t} -> ${n}`,n){const a=$t(e.loopBody??[],[...e.path,0],dt(e));this.splice([...a,{...dt(e),path:e.path,text:e.text,kind:"whileLoop",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(a)}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterDoUntilLoop(e){const t=$t(e.loopBody??[],[...e.path,0],dt(e));this.splice([...t,{...dt(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(t)}executeDoUntilCondition(e){const t=aa(e.text),n=this.condition(t);if(n!==void 0)if(this.state.lastTrace=`${t} -> ${n}`,n){const a=$t(e.loopBody??[],[...e.path,0],dt(e));this.splice([...a,{...dt(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterInfiniteLoop(e){const t=$t(e.loopBody??[],[...e.path,0],dt(e));this.splice([...t,{...dt(e),path:e.path,text:e.text,kind:"infiniteLoop",loopBody:e.loopBody}]),this.state.lastTrace="true -> true",this.state.notice=t.length>0?void 0:{kind:"infiniteLoopWithoutBody"}}executeJump(e){const t=e.frame??0,n=o=>o.lengthl===e.path[u]);let a=this.steps.length,s="end";for(let o=this.state.stepIndex+1;o ${s}`,s==="return"&&this.finishFrame(r),this.state.notice=this.finishedIfAtEnd()}executeCall(e){const t=e.text,n=this.resolveSubprogram(ds(t));if(!n){this.splice([]),this.state.lastTrace=`${t} -> ?`,this.state.notice={kind:"subprogramNotFound",text:t},this.state.stepIndex>=this.steps.length&&(this.state.notice={kind:"finished"});return}const a=jh(t),s=It(n.caption);if(s?((a==null?void 0:a.args.length)??0)!==s.params.length||(a==null?void 0:a.target)!==void 0&&!s.returnType:a!==void 0&&(a.args.length>0||a.target!==void 0))throw new Re({kind:"callArguments",text:(s==null?void 0:s.name)??ds(t)});if(this.callDepth>=W3)throw new Re({kind:"callTooDeep"});const o=new Map,l=[];s==null||s.params.forEach((d,h)=>{const g=a.args[h].trim();if(!d.dims){o.set(d.name,this.evaluateExpression(g,d.type));return}const f=this.state.variables.get(g);if(!f)throw/^[A-Za-z_]\w*$/u.test(g)?p1(g,this.state.variables):R(g);if(!(d.dims===1?f.kind===`${d.type}Array`:f.kind==="grid"&&f.elementType===d.type))throw R(g);o.set(d.name,f),l.push({param:d.name,callerName:g})}),this.callDepth+=1;const u={frame:this.nextFrame++,callPath:e.callPath??e.path};s&&(this.frames.set(u.frame,{saved:this.state.variables,header:s,call:a,references:l}),this.state.variables=o);const m=$t(n.elements,[],u);this.splice([...m,{...u,path:e.path,text:t,kind:"callEnd"}]);const c=s==null?void 0:s.params.map((d,h)=>`${d.name} = ${d.dims?a.args[h].trim():_e(o.get(d.name))}`).join(", ");this.state.lastTrace=c?`${t} -> ${c}`:`${t} -> call`}executeCallEnd(e){this.callDepth-=1,this.splice([]),this.state.lastTrace=`${e.text} -> return`,this.finishFrame(e),this.state.notice=this.finishedIfAtEnd()}executeReturn(e){const t=e.frame??0,n=e1(e.text).slice(6).trim(),a=this.frames.get(t);if(a&&n!==""){if(!a.header.returnType)throw R(e.text);a.returnValue=this.evaluateExpression(n,a.header.returnType)}const s=a!=null&&a.returnValue?`${e.text} -> ${_e(a.returnValue)}`:`${e.text} -> return`;if(t===0){this.steps.splice(this.state.stepIndex),this.state.lastTrace=s,this.state.notice={kind:"finished"};return}let r=this.state.stepIndex+1;for(;r0?new Map(t.saved):t.saved;for(const m of t.references){const c=this.state.variables.get(m.param);c&&n.set(m.callerName,c)}this.state.variables=n;const a=t.returnValue;if(t.header.returnType&&!a)throw new Re({kind:"missingReturn",text:t.header.name});const s=(l=t.call)==null?void 0:l.target;if(!s||!a)return;let r=(u=t.call)==null?void 0:u.targetType;if(!r)try{r=this.inferTargetValueType(s)}catch{r=t.header.returnType}const o=r==="double"&&a.kind==="int"?St(a.value):r==="string"?{kind:"string",value:_e(a)}:a;if(zu(o)!==r)throw R(e.text);this.assignValue(o,s),this.state.lastTrace=`${s} = ${e.text.slice(e.text.indexOf("=")+1).trim()} -> ${_e(o)}`}executeStatement(e){const t=this.state,n=e.trim(),a=n.toLowerCase(),s=this.afterOutput;if(this.afterOutput=!1,a.startsWith("input:")){t.inputRequest=this.parseInputRequest(n,s),t.outputLineOpen=!1,t.inputErrorNotice=void 0;return}const r=/^System\s*\.\s*out\s*\.\s*(println|print)\s*\(([\s\S]*)\)\s*;?$/u.exec(n);if(a.startsWith("output:")||a.startsWith("print:")||r){const v=r?r[2]:n.slice(a.startsWith("output:")?7:6),w=this.peek(()=>this.renderOutputExpression(v)),z=v.trim()===""?"":this.evaluateOutputExpression(v),I=(r==null?void 0:r[1])==="print",k=I&&z.endsWith(` -`),[S,...j]=(k?z.slice(0,-1):z).split(` -`);t.outputLineOpen&&t.outputLines.length?t.outputLines[t.outputLines.length-1]+=S:t.outputLines.push(S),t.outputLines.push(...j),t.outputLineOpen=I&&!k,this.afterOutput=!0,t.lastTrace=`${w} -> ${z}`;return}const o=D3(n);if(o){this.executeMBotCommand(o.method,o.args,n);return}if(this.executeFileStatement(n))return;if(n.endsWith("++")||n.endsWith("--")||n.includes("+=")||n.includes("-=")){this.executeIncrement(n);return}const l=/^(?:final\s+)?([A-Za-z]+)\s+([A-Za-z_]\w*(?:\s*,\s*[A-Za-z_]\w*)*)$/u.exec(e1(n).trim()),u=l?tn(l[1]):void 0;if(l&&u){const v=l[2].split(",").map(w=>w.trim());for(const w of v)t.variables.set(w,ko(u,wu(u)));t.lastTrace=v.map(w=>`${w} = ${_e(t.variables.get(w))}`).join(", ");return}const m=n.indexOf("=");if(m<0)throw Ke(n);const c=n.slice(0,m).trim(),d=n.slice(m+1),h=this.parseArrayDeclaration(c,d);if(h){t.variables.set(h.name,h.value),t.lastTrace=`${h.name} = new ${h.typeName}[${h.count}]`;return}const g=this.parseAssignmentTarget(c);let f;try{f=this.peek(()=>this.renderNumericExpression(d))}catch{f=d.trim()}let x=g.valueType;if(!x)try{x=this.inferTargetValueType(g.variableName)}catch{x="int"}const b=this.evaluateExpression(d,x);this.assignValue(b,g.variableName),t.lastTrace=`${g.variableName} = ${f} -> ${_e(b)}`}executeMBotCommand(e,t,n){var r;if((r=Si[e])!=null&&r.text){const o=Si[e];if(t.length!==o.args+1)throw R(n);const l=os(e,t.slice(0,-1).map(c=>this.evaluateDouble(c)));if(!l)throw R(n);const u=bu(e,l,this.evaluateOutputExpression(t[t.length-1])),m=o.choices;if(m&&!m.includes(u.text??""))throw R(`${n} (${m.join(", ")})`);this.state.robotActions.push(u),this.state.lastTrace=`${n} -> ${u.label}`;return}const a=os(e,t.map(o=>this.evaluateDouble(o)));if(!a)throw R(n);const s=bu(e,a);this.state.robotActions.push(s),this.state.lastTrace=`${n} -> ${s.label}`}executeFileStatement(e){const t=this.state,n=e1(e).trim(),a=/^(?:(Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*new\s+(Scanner|BufferedReader|PrintWriter)\s*\(([\s\S]*)\)$/u.exec(n);if(a){const[,m,c,d,h]=a;if(m&&m!==d)throw R(n);const g=d==="Scanner"?/^new\s+File\s*\(([\s\S]+)\)$/u.exec(h.trim()):d==="BufferedReader"?/^new\s+FileReader\s*\(([\s\S]+)\)$/u.exec(h.trim()):/^(?:new\s+(?:File|FileWriter)\s*\(([\s\S]+)\)|([\s\S]+))$/u.exec(h.trim());if(!g)throw Ke(n);const f=this.fileNameValue(g[1]??g[2]);if(d==="PrintWriter")t.variables.set(c,{kind:"writer",file:f,text:""});else{const b=this.fileContent(f).split(/\r?\n/u);b[b.length-1]===""&&b.pop(),t.variables.set(c,{kind:"reader",className:d,file:f,lines:b,next:0})}return t.lastTrace=`${c} = new ${d}(${f})`,!0}const s=/^Files\s*\.\s*writeString\s*\(\s*(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(([^()]+)\)\s*,([\s\S]+)\)$/u.exec(n);if(s){const m=this.fileNameValue(s[1]),c=this.evaluateOutputExpression(s[2]);return t.files.set(m,c),t.lastTrace=`${m} ← ${JSON.stringify(c)}`,!0}const r=/^([A-Za-z_]\w*)\s*\.\s*(println|print|close)\s*\(([\s\S]*)\)$/u.exec(n),o=r&&t.variables.get(r[1]);if(!r||!o)return!1;if(o.kind==="null")throw new Re({kind:"nullValue",text:r[1]});if(o.kind==="reader"&&r[2]==="close")return t.lastTrace=`${r[1]}.close()`,!0;if(o.kind!=="writer")return!1;if(r[2]==="close")return t.files.set(o.file,o.text),t.lastTrace=`${o.file} ← ${JSON.stringify(o.text)}`,!0;const l=r[3].trim()===""?"":this.evaluateOutputExpression(r[3]),u=r[2]==="println"?l+` -`:l;return t.variables.set(r[1],{...o,text:o.text+u}),t.lastTrace=`${r[1]}.${r[2]}(${JSON.stringify(l)})`,!0}fileNameValue(e){const t=e.trim(),n=lt(t);if(n!==void 0)return n;const a=this.evaluateReference(t);if((a==null?void 0:a.kind)==="string")return a.value;throw R(t)}fileContent(e){const t=this.state.files.get(e)??us.get(e);if(t===void 0)throw new Re({kind:"fileNotFound",text:e});return t}readerMethod(e,t,n,a){if(n.args.length)throw R(a);const s=t.next0?"+":"-";if(r.kind==="int"){t.set(s,kt(r.value+a)),this.state.lastTrace=`${s} = ${r.value} ${o} 1 -> ${r.value+a}`;return}if(r.kind==="double"){const l=r.value+a;t.set(s,St(l)),this.state.lastTrace=`${s} = ${_e(r)} ${o} 1 -> ${_e(St(l))}`;return}throw Ke(e)}for(const[n,a]of[["+=",1],["-=",-1]]){const s=e.indexOf(n);if(s<0)continue;const r=e.slice(0,s).trim(),o=e.slice(s+2),l=t.get(r);if(!ci(r)||!l)throw Ke(e);const u=a>0?"+":"-";if(l.kind==="int"){const m=this.evaluateInt(o),c=l.value+a*m;t.set(r,kt(c)),this.state.lastTrace=`${r} = ${l.value} ${u} ${m} -> ${c}`;return}if(l.kind==="double"){const m=this.evaluateDouble(o),c=l.value+a*m;t.set(r,St(c)),this.state.lastTrace=`${r} = ${_e(l)} ${u} ${_e(St(m))} -> ${_e(St(c))}`;return}throw Ke(e)}this.executeStatement(e)}parseAssignmentTarget(e){if(f1(e))return{variableName:e.trim()};const t=e.split(/\s+/u).filter(Boolean);let n,a;if(t.length===1)n=t[0];else if(t.length===2&&tn(t[0]))n=t[1],a=tn(t[0]);else if(t.length===3&&t[0]==="const"&&tn(t[1]))n=t[2],a=tn(t[1]);else throw Ke(e);if(!ku(n))throw Ke(e);return{variableName:n,valueType:a}}parseInputRequest(e,t=!1){const n=e.slice(6).trim(),a=/^(\S+)(?:\s+(\S+))?(?:\s+([\s\S]*))?$/u.exec(n);if(!a)throw Ke(e);const s=[a[1],a[2],a[3]].filter(c=>c!==void 0);let r,o,l;const u=tn(s[0]);if(s.length>=2&&u?(r=s[1],o=u,l=(s[2]??"").trim()):(r=s[0],o=this.inferTargetValueType(r),l=(s[1]??"").trim()),!ku(r))throw Ke(e);const m=lt(l)??l;return m===""&&t?this.state.outputLineOpen?{variableName:r,valueType:o,prompt:"",continuesLine:!0}:{variableName:r,valueType:o,prompt:""}:{variableName:r,valueType:o,prompt:m===""?`${r}:`:m}}parseArrayDeclaration(e,t){const n=e.split(/\s+/u).filter(Boolean);if(n.length!==2||!n[0].endsWith("[]"))return;const a=n[0].endsWith("[][]"),s=n[0].slice(0,a?-4:-2),r=tn(s),o=n[1];if(!r||!ci(o))throw Ke(e);if(a)return this.parseGridDeclaration(o,s,r,t);const l=t.trim();if(l.startsWith("{")&&l.endsWith("}")){const h=l.slice(1,-1).split(",").map(f=>f.trim());let g;switch(r){case"int":g={kind:"intArray",value:h.map(f=>this.evaluateInt(f))};break;case"double":g={kind:"doubleArray",value:h.map(f=>this.evaluateDouble(f))};break;case"string":g={kind:"stringArray",value:h.map(f=>lt(f)??this.evaluateOutputExpression(f))};break;case"boolean":g={kind:"booleanArray",value:h.map(f=>this.evaluateBool(f))};break}return{name:o,typeName:s,count:h.length,value:g}}const u=`new ${s}[`;if(!l.startsWith(u)){const h=this.evaluateStringMethod(l);if((h==null?void 0:h.kind)==="stringArray"&&r==="string")return{name:o,typeName:s,count:h.value.length,value:h}}if(!l.startsWith(u)||!l.endsWith("]"))throw Ke(t);const m=l.slice(u.length,-1),c=this.evaluateInt(m);if(c<0)throw R(m);const d=r==="int"?{kind:"intArray",value:new Array(c).fill(0)}:r==="double"?{kind:"doubleArray",value:new Array(c).fill(0)}:r==="boolean"?{kind:"booleanArray",value:new Array(c).fill(!1)}:{kind:"stringArray",value:new Array(c).fill("")};return{name:o,typeName:s,count:c,value:d}}parseGridDeclaration(e,t,n,a){var c;const s=a.trim(),r=d=>{switch(n){case"int":return this.evaluateInt(d);case"double":return this.evaluateDouble(d);case"boolean":return this.evaluateBool(d);case"string":return lt(d.trim())??this.evaluateOutputExpression(d)}};if(s.startsWith("{")&&s.endsWith("}")){const d=q3(s.slice(1,-1)).map(h=>{const g=h.trim();if(!g.startsWith("{")||!g.endsWith("}"))throw R(g);return g.slice(1,-1).trim()===""?[]:g.slice(1,-1).split(",").map(f=>r(f.trim()))});return{name:e,typeName:t,count:`${d.length}][${((c=d[0])==null?void 0:c.length)??0}`,value:{kind:"grid",elementType:n,value:d}}}const o=new RegExp(String.raw`^new\s+${t}\s*\[(.+)\]\s*\[(.+)\]$`,"u").exec(s);if(!o)throw Ke(a);const l=this.evaluateInt(o[1]),u=this.evaluateInt(o[2]);if(l<0)throw R(o[1]);if(u<0)throw R(o[2]);const m={kind:"grid",elementType:n,value:Array.from({length:l},()=>new Array(u).fill(wu(n)))};return{name:e,typeName:t,count:`${l}][${u}`,value:m}}arrayIndex(e){const t=this.evaluateInt(e);if(t<0)throw R(e);return t}evaluateReference(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n;const a=this.evaluateStringMethod(t);if(a)return a;const s=/^\(\s*char\s*\)\s*(.+)$/su.exec(t);if(s){const o=this.evaluateInt(s[1]);if(!(o>=0&&o<=1114111))throw R(t);return{kind:"string",value:String.fromCodePoint(o)}}const r=f1(t);if(r)return this.valueInArray(r.arrayName,r.indexExpressions.map(o=>this.arrayIndex(o)))}evaluateStringMethod(e){const t=V3(e);if(!t)return;const n=this.evaluateStaticCall(e,t);if(n)return n;const a=this.state.variables.get(t.target.trim());if((a==null?void 0:a.kind)==="reader")return this.readerMethod(t.target.trim(),a,t,e);if((a==null?void 0:a.kind)==="null")throw new Re({kind:"nullValue",text:t.target.trim()});const s=lt(t.target)??this.stringValueOf(t.target);if(s===void 0)return;const r=t.args,o=d=>{const h=r[d];if(h===void 0)throw R(e);const g=lt(h.trim());if(g!==void 0)return g;const f=this.evaluateReference(h);if((f==null?void 0:f.kind)==="string")return f.value;throw R(h)},l=d=>{if(r[d]===void 0)throw R(e);return this.evaluateInt(r[d])},u=d=>{if(r.length!==d)throw R(e)},m=Array.from(s),c=(d,h)=>{if(d<0||d>h)throw R(e);return d};switch(t.method){case"length":return u(0),kt(m.length);case"charAt":return u(1),{kind:"string",value:m[c(l(0),m.length-1)]};case"substring":{if(r.length!==1&&r.length!==2)throw R(e);const d=c(l(0),m.length),h=r.length===2?c(l(1),m.length):m.length;if(h0&&h[h.length-1]==="";)h.pop();return{kind:"stringArray",value:h}}default:return}}evaluateStaticCall(e,t){const n=()=>{if(t.args.length!==1)throw R(e);return t.args[0]},a=s=>{const r=lt(s.trim());if(r!==void 0)return r;const o=this.evaluateReference(s);if((o==null?void 0:o.kind)==="string")return o.value;throw R(s)};switch(`${t.target}.${t.method}`){case"Integer.parseInt":{const s=a(n()).trim();if(!/^[+-]?\d+$/u.test(s))throw new Re({kind:"wholeNumberExpected"});return kt(Number(s))}case"Double.parseDouble":{const s=Number(a(n()).trim());if(!Number.isFinite(s))throw new Re({kind:"numberExpected"});return St(s)}case"String.valueOf":return{kind:"string",value:this.evaluateOutputExpression(n())};case"Files.readString":{const s=/^(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)$/u.exec(n().trim());if(!s)throw R(e);const r=lt(s[1]),o=us.get(r);if(o===void 0)throw new Re({kind:"fileNotFound",text:r});return{kind:"string",value:o}}default:return}}stringValueOf(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n.kind==="string"?n.value:void 0;const a=f1(t);if(!a)return;const s=this.valueInArray(a.arrayName,a.indexExpressions.map(r=>this.arrayIndex(r)));return s.kind==="string"?s.value:void 0}substituteStringCalls(e){if(!e.includes("("))return e;let t="",n=e;const a=/([A-Za-z_]\w*(?:\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*(length|indexOf|lastIndexOf|compareTo|charAt|parseInt|parseDouble)\s*\(/u;for(let s=a.exec(n);s;s=a.exec(n)){const r=s.index+s[0].length-1,o=Qs(Array.from(n),Array.from(n.slice(0,r)).length);if(o===void 0)break;const l=Array.from(n),u=l.slice(Array.from(n.slice(0,s.index)).length,o+1).join(""),m=this.evaluateStringMethod(u),c=l.slice(0,Array.from(n.slice(0,s.index)).length).join(""),d=(m==null?void 0:m.kind)==="string"?To(m.value):void 0;(m==null?void 0:m.kind)==="int"?t+=c+String(m.value):(m==null?void 0:m.kind)==="double"?t+=c+(Number.isInteger(m.value)?m.value.toFixed(1):String(m.value)):d!==void 0?t+=c+String(d):t+=c+u,n=l.slice(o+1).join("")}return t+n}valueInArray(e,t){const n=this.state.variables.get(e);if(!n)throw p1(e,this.state.variables);const a=`${e}[${t.join("][")}]`;if(n.kind==="grid"){if(t.length!==2)throw R(a);const r=n.value[t[0]];if(!r||t[1]>=r.length)throw R(a);return ko(n.elementType,r[t[1]])}if(t.length!==1)throw R(a);const s=t[0];if(!So(n))throw R(e);if(s>=n.value.length)throw R(a);switch(n.kind){case"intArray":return kt(n.value[s]);case"doubleArray":return St(n.value[s]);case"stringArray":return{kind:"string",value:n.value[s]};case"booleanArray":return{kind:"boolean",value:n.value[s]};default:throw R(e)}}inferTargetValueType(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return zu(n);const a=f1(t);if(a){const s=this.state.variables.get(a.arrayName);if(!s)throw p1(a.arrayName,this.state.variables);if(s.kind==="intArray")return"int";if(s.kind==="doubleArray")return"double";if(s.kind==="stringArray")return"string";if(s.kind==="booleanArray")return"boolean";if(s.kind==="grid")return s.elementType;throw R(a.arrayName)}throw Ke(e)}assignValue(e,t){const n=t.trim(),a=f1(n);if(!a){this.state.variables.set(n,e);return}const s=a.indexExpressions.map(u=>this.arrayIndex(u)),r=this.state.variables.get(a.arrayName);if(!r)throw p1(a.arrayName,this.state.variables);if(r.kind==="grid"){if(s.length!==2||s[0]>=r.value.length||s[1]>=r.value[s[0]].length)throw R(n);const u=r.elementType==="double"&&e.kind==="int"||e.kind===r.elementType?e.value:void 0;if(u===void 0||So(e))throw R(n);const m=r.value.map(c=>[...c]);m[s[0]][s[1]]=u,this.state.variables.set(a.arrayName,{...r,value:m});return}if(s.length!==1)throw R(n);const o=s[0];let l;if(r.kind==="intArray"&&e.kind==="int")l={kind:"intArray",value:[...r.value]};else if(r.kind==="doubleArray"&&(e.kind==="double"||e.kind==="int"))l={kind:"doubleArray",value:[...r.value]};else if(r.kind==="stringArray"&&e.kind==="string")l={kind:"stringArray",value:[...r.value]};else if(r.kind==="booleanArray"&&e.kind==="boolean")l={kind:"booleanArray",value:[...r.value]};else throw R(n);if(o>=l.value.length)throw R(n);l.value[o]=e.value,this.state.variables.set(a.arrayName,l)}evaluateOutputExpression(e){const t=this.withSensors(e).trim();if(Tu(t)&&Ir(t).every(s=>lt(s.trim())===void 0)&&!this.evaluateReference(t))return String(this.evaluateBool(t));let n,a;for(const s of Ir(this.withSensors(e))){const r=s.trim(),o=lt(r),l=o!==void 0?{kind:"string",value:o}:this.evaluateReference(r)??(Tu(r)?{kind:"boolean",value:this.evaluateBool(r)}:this.evaluateNumeric(r)),u=l.kind==="int"||l.kind==="double";if(a===void 0&&u){n?n=n.kind==="int"&&l.kind==="int"?kt(n.value+l.value):St(n.value+l.value):n=l;continue}a=(a??(n?_e(n):""))+_e(l),n=void 0}return a??(n?_e(n):"")}renderOutputExpression(e){return Ir(e).map(t=>{const n=t.trim();if(lt(n)!==void 0)return n;const a=this.evaluateReference(n);if(a)return _e(a);try{return this.renderNumericExpression(n)}catch{return n}}).join(" + ")}evaluateExpression(e,t){switch(t){case"int":return kt(this.evaluateInt(e));case"double":return St(this.evaluateDouble(e));case"string":{const n=e.trim(),a=lt(n);if(a!==void 0)return{kind:"string",value:a};if(n==="null")return{kind:"null"};const s=this.evaluateReference(n);return(s==null?void 0:s.kind)==="null"?s:s?{kind:"string",value:_e(s)}:{kind:"string",value:this.evaluateOutputExpression(e)}}case"boolean":return{kind:"boolean",value:this.evaluateBool(e)}}}evaluateNumeric(e){const{v:t,int:n}=this.parser(e).parseNumber();return n||Number.isFinite(t)&&Math.round(t)===t?kt(t):St(t)}parser(e){const t=this.withSensors(e);return new Q3(Su(Iu(this.substituteStringCalls(t))),this.state.variables)}withSensors(e){return B3(e,t=>this.robotSensors[t]??Ct[t].simulated)}evaluateInt(e){return this.parser(e).parseInt()}evaluateDouble(e){return this.parser(e).parseDouble()}evaluateBool(e){const t=this.withSensors(e).trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);if((n==null?void 0:n.kind)==="boolean")return n.value;const a=cs(t,"||");if(a.length>1)return a.some(u=>this.evaluateBool(u));const s=cs(t,"&&");if(s.length>1)return s.every(u=>this.evaluateBool(u));if(t.startsWith("!")&&!t.startsWith("!="))return!this.evaluateBool(t.slice(1));const r=_h(t);if(r!==void 0)return this.evaluateBool(r);const o=H3(t);if(o)return this.evaluateComparison(o.lhs,"==",o.rhs);const l=G3(t);if(l)return this.evaluateComparison(l.lhs,l.op,l.rhs);if(this.stringOperand(t)!==void 0)throw R(t);return this.evaluateDouble(t)!==0}evaluateComparison(e,t,n){if((e.trim()==="null"||n.trim()==="null")&&(t==="=="||t==="!=")){const m=d=>{var h;return d.trim()==="null"||((h=this.evaluateReference(d))==null?void 0:h.kind)==="null"},c=m(e)===m(n);return t==="=="?c:!c}const a=this.booleanOperand(e),s=this.booleanOperand(n);if((a!==void 0||s!==void 0)&&(t==="=="||t==="!=")){const m=a??this.evaluateBool(e),c=s??this.evaluateBool(n);return t==="=="?m===c:m!==c}const r=this.stringOperand(e),o=this.stringOperand(n);let l,u;if(r!==void 0||o!==void 0){if(r===void 0||o===void 0)throw R(`${e} ${t} ${n}`);l=r,u=o}else l=this.evaluateDouble(e),u=this.evaluateDouble(n);switch(t){case"==":return l===u;case"!=":return l!==u;case"<":return l":return l>u;case">=":return l>=u;default:throw R(`${e} ${t} ${n}`)}}booleanOperand(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);return(n==null?void 0:n.kind)==="boolean"?n.value:void 0}stringOperand(e){const t=e.trim(),n=lt(t);if(n!==void 0)return n;const a=this.evaluateReference(t);return(a==null?void 0:a.kind)==="string"?a.value:void 0}evaluateSwitchSelector(e){const t=this.withSensors(e).trim(),n=lt(t);if(n!==void 0)return{kind:"text",value:n};const a=this.state.variables.get(t);if(a)switch(a.kind){case"int":return{kind:"int",value:a.value};case"double":return{kind:"int",value:Math.trunc(a.value)};case"string":return{kind:"text",value:a.value};default:throw R(t)}return/^[+-]?[0-9]+$/.test(t)?{kind:"int",value:Number(t)}:{kind:"int",value:this.evaluateInt(t)}}renderNumericExpression(e){return Su(Iu(e)).map(t=>{if(t.t==="number")return t.literal;if(t.t==="identifier"){const n=this.state.variables.get(t.name);if(!n)throw p1(t.name,this.state.variables);return _e(n)}return t.t}).join(" ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(" . ",".").replaceAll("[ ","[").replaceAll(" ]","]")}}const Ch={baseIndent:0,indentPerLevel:4,includeDiagramTextAsComments:!1,includeEmptyElseBranch:!0,pseudocodeNote:"Pseudocode – not a runnable program"};function hs(i,e,t={},n=[]){const a=Xl(i,e,t);let s="";e==="javascript"&&(s+=`"use strict"; + pass`],mi=(i,e)=>Array.from({length:e},(t,n)=>i>>>8*n&255);function z3(i){let e=0;for(let t=0;t>>0;return mi(e,4)}const wr=(i,e)=>ql([1,0,xh,i,...mi(e.length,2),...e]);function I3(i,e=v3){const t=new TextEncoder().encode(i),n=(4-t.length%V1+V1)%V1,a=new Uint8Array(t.length+n).fill(10);a.set(t);const s=[wr(1,[0,...mi(a.length,4),...z3(a),...Array.from(new TextEncoder().encode(e))])],r=a.length-4;for(let o=0;oi.length===3&&i[0]===13,S3=i=>i.length===7||i.some((e,t)=>e===xh&&i[t+1]===240),bh=()=>typeof navigator>"u"?void 0:navigator.serial,zr=()=>bh()!==void 0,T3=(...i)=>`exec(${JSON.stringify(i.join("; "))})`,Qs=(i,e=24)=>T3("cyberpi.display.clear()",`cyberpi.display.show_label(${JSON.stringify(i)}, ${e}, 'center')`),vh=Qs("VisuBot",32);class j3{constructor(){y(this,"port");y(this,"writer");y(this,"reader");y(this,"loop");y(this,"rx",[]);y(this,"idx",1);y(this,"frameWaiters",[]);y(this,"waiting",new Map);y(this,"queue",Promise.resolve());y(this,"listeners",new Set);y(this,"error");y(this,"connecting",!1)}listen(e){return this.listeners.add(e),()=>this.listeners.delete(e)}changed(){for(const e of this.listeners)e()}get connected(){return this.writer!==void 0&&!this.connecting}async connect(){const e=bh();if(!e)throw new Error("Web Serial");const t=await e.requestPort();await t.open({baudRate:115200}),this.port=t,this.writer=t.writable.getWriter(),this.error=void 0,this.connecting=!0,this.changed(),this.loop=this.readLoop(),window.addEventListener("pagehide",()=>void this.disconnect(),{once:!0}),await new Promise(n=>setTimeout(n,3e3)),this.writer&&(this.rx.length=0,this.connecting=!1,this.changed(),await this.run(vh))}async disconnect(e){if(!this.port)return this.error=e,this.changed();if(!e&&this.writer&&!this.connecting)for(const r of["mbot2.EM_stop('ALL')","cyberpi.led.off()",Qs("Bis bald!")])await this.send(r,yr,2e3).catch(()=>{});const t=this.port,n=this.writer,a=this.reader,s=this.loop;this.port=this.writer=this.reader=this.loop=void 0,this.error=e,this.connecting=!1;for(const r of this.waiting.values())r.reject(new Error(e??"getrennt"));this.waiting.clear();try{await(a==null?void 0:a.cancel()),await s,await(n==null?void 0:n.close())}catch{}try{n==null||n.releaseLock(),await t.close()}catch(r){console.warn("[mBot2] Schließen",r.message)}this.changed()}run(e){return this.send(e,yr,3e4).then(()=>{})}ask(e){return this.send(e,g3,3e3)}async upload(e,t=()=>{}){if(this.port||await this.connect(),!this.writer)throw new Error(this.error??"nicht verbunden");const n=I3(e),a=6+n.length+3;let s=0;const r=()=>t(++s,a),o=async()=>{await this.sendFrame(ql(y3),k3),r();for(const l of w3)await this.send(l,yr,3e3),r()};await o(),await o();for(const l of n)await this.sendFrame(l,S3),r();s=a-3,await o(),await this.restart()}sendFrame(e,t){const n=this.queue.then(async()=>{for(let a=0;a<3;a++){if(!this.writer)throw new Error("nicht verbunden");let s=()=>{};const r=new Promise(u=>s=u),o={match:t,resolve:s};this.frameWaiters.push(o),await this.writer.write(e);const l=await Promise.race([r.then(()=>!0),new Promise(u=>setTimeout(()=>u(!1),3e3))]);if(this.frameWaiters=this.frameWaiters.filter(u=>u!==o),l)return}throw new Error("keine Antwort")});return this.queue=n.catch(()=>{}),n}async restart(){const e=this.port;await this.disconnect("restart"),this.error=void 0,await new Promise(t=>setTimeout(t,300)),await e.open({baudRate:115200}),await new Promise(t=>setTimeout(t,500)),await e.close(),this.changed()}send(e,t,n){const a=this.queue.then(()=>new Promise((s,r)=>{if(!this.writer)return r(new Error("nicht verbunden"));const o=this.idx;this.idx=this.idx%65535+1;const l=setTimeout(()=>{this.waiting.delete(o),r(new Error("keine Antwort"))},n);this.waiting.set(o,{resolve:u=>(clearTimeout(l),s(u)),reject:u=>(clearTimeout(l),r(u))}),this.writer.write(p3(e,t,o)).catch(u=>{this.waiting.delete(o),r(u)})}));return this.queue=a.catch(()=>{}),a}async readLoop(){var e;for(;(e=this.port)!=null&&e.readable;){const t=this.port.readable.getReader();this.reader=t;try{for(;;){const{value:n,done:a}=await t.read();if(a)break;this.rx.push(...n);for(const s of x3(this.rx)){const r=this.frameWaiters.findIndex(u=>u.match(s));r>=0&&this.frameWaiters.splice(r,1)[0].resolve();const o=f3(s);if(!o)continue;const l=this.waiting.get(o.idx);this.waiting.delete(o.idx),l==null||l.resolve(o.value)}}}catch(n){const a=["BufferOverrunError","FramingError","BreakError","ParityError"].includes(n.name);console.warn("[mBot2] Lesefehler",n.name,n.message),!a&&this.port&&this.disconnect(n.message)}finally{t.releaseLock()}if(!this.writer)break}}}const pe=new j3,yh=5,_3=i=>Number.isInteger(i)&&i>=0&&iString(Math.round(i*100)/100),Si={forward:{args:1,defaults:[fu],python:([i])=>`mbot2.straight(${ke(i)})`,label:([i])=>`${ke(i)} cm vorwärts`},backward:{args:1,defaults:[fu],python:([i])=>`mbot2.straight(${ke(-i)})`,label:([i])=>`${ke(i)} cm rückwärts`},turnLeft:{args:1,defaults:[90],python:([i])=>`mbot2.turn(${ke(-i)})`,label:([i])=>`${ke(i)}° nach links drehen`},turnRight:{args:1,defaults:[90],python:([i])=>`mbot2.turn(${ke(i)})`,label:([i])=>`${ke(i)}° nach rechts drehen`},stop:{args:0,python:()=>'mbot2.EM_stop("ALL")',label:()=>"anhalten"},drive:{args:2,python:([i,e])=>`mbot2.drive_power(${ke(i)}, ${ke(-e)})`,label:([i,e])=>`Räder links ${ke(i)} %, rechts ${ke(e)} %`},setLed:{args:3,python:([i,e,t])=>`cyberpi.led.on(${ke(i)}, ${ke(e)}, ${ke(t)})`,label:([i,e,t])=>`LEDs (${ke(i)}, ${ke(e)}, ${ke(t)})`},ledOff:{args:0,python:()=>"cyberpi.led.off()",label:()=>"LEDs aus"},ledColor:{args:1,text:!0,choices:Object.keys(rs),valid:([i])=>_3(i),python:([i],e)=>`cyberpi.led.on(${rs[e].join(", ")}, id=${i+1})`,label:([i],e)=>`LED ${i}: ${e}`},playTone:{args:2,python:([i,e])=>`cyberpi.audio.play_tone(${ke(i)}, ${ke(e/1e3)})`,label:([i,e])=>`Ton ${ke(i)} Hz, ${ke(e)} ms`},pause:{args:1,label:([i])=>`${ke(i)} ms warten`},resetTimer:{args:0,python:()=>"cyberpi.timer.reset()",label:()=>"Stoppuhr auf 0"},emotion:{args:0,text:!0,choices:C3,python:(i,e)=>`cyberpi.emotion.${e}()`,label:(i,e)=>`Gefühl: ${e}`},showText:{args:0,text:!0,python:(i,e)=>Qs(e),label:(i,e)=>`Bildschirm: ${e}`}},xu={red:{de:"rot",en:"red"},green:{de:"grün",en:"green"},blue:{de:"blau",en:"blue"},yellow:{de:"gelb",en:"yellow"},cyan:{de:"türkis",en:"cyan"},purple:{de:"lila",en:"purple"},white:{de:"weiß",en:"white"},black:{de:"schwarz",en:"black"}};let Ul="en";function A3(i){Ul=i==="de"?"de":"en"}const P3=()=>Ul;function wh(i){const e=i.trim().toLowerCase(),t=xu[e]??Object.values(xu).find(n=>n.de===e);return t?t[Ul]:e}const c1=i=>({python:`cyberpi.controller.is_press('${i}')`,simulated:!1}),Ct={getDistance:{python:"mbuild.ultrasonic2.get(1)",simulated:100},getLine:{python:"mbuild.quad_rgb_sensor.get_line_sta('all', 1)",simulated:0},isLineLeft:{python:"mbuild.quad_rgb_sensor.is_line('L1', 1)",simulated:!1},isLineRight:{python:"mbuild.quad_rgb_sensor.is_line('R1', 1)",simulated:!1},getColor:{python:"mbuild.quad_rgb_sensor.get_color_sta('L1', 1)",simulated:"white"},isButtonA:c1("a"),isButtonB:c1("b"),isJoystickUp:c1("up"),isJoystickDown:c1("down"),isJoystickLeft:c1("left"),isJoystickRight:c1("right"),getBrightness:{python:"cyberpi.get_bri()",simulated:50},getLoudness:{python:"cyberpi.get_loudness('maximum')",simulated:0},getPitch:{python:"cyberpi.get_pitch()",simulated:0},getRoll:{python:"cyberpi.get_roll()",simulated:0},isShaken:{python:"cyberpi.is_shake()",simulated:!1},getBattery:{python:"cyberpi.get_battery()",simulated:100},getTimer:{python:"cyberpi.timer.get()",simulated:0}};function O3(i){const e=new Set;for(const t of i.matchAll(/\bmbot\s*\.\s*([A-Za-z_]\w*)\s*\(\s*\)/gu))t[1]in Ct&&e.add(t[1]);return[...e]}function M3(i){const e=/^mbot\s*\.\s*led\s*\(([^()]*(?:\([^()]*\)[^()]*)*)\)\s*\.\s*setColor\s*\(([\s\S]*)\)\s*;?$/u.exec(i.trim());if(e)return{method:"ledColor",args:[e[1].trim(),e[2].trim()]};const t=/^mbot\s*\.\s*([A-Za-z_]\w*)\s*\(([\s\S]*)\)\s*;?$/u.exec(i.trim());if(!t)return;const n=t[2].trim();return{method:t[1],args:n===""?[]:B3(n)}}function os(i,e){const t=Si[i];if(!t)return;const n=e.length===0&&t.defaults?t.defaults:e;if(n.length===t.args)return!t.valid||t.valid(n)?n:void 0}function bu(i,e,t=""){var a;const n=Si[i];return{method:i,args:e,python:(a=n.python)==null?void 0:a.call(n,e,t),waitMs:i==="pause"?Math.max(0,e[0]):void 0,label:n.label(e,t),...n.text?{text:t}:{}}}function zh(i){return i.map(e=>[e.method,...e.args.map(ke),...e.text!==void 0?[JSON.stringify(e.text)]:[]].join(" "))}function Z3(i){let e=0;const t=i.trim(),n=()=>{const s=[];for(;;){for(;t[e]===" "||t[e]===",";)e++;if(e>=t.length||t[e]===")")return s;const r=/^(\d+)\s*[x×]\s*\(/u.exec(t.slice(e));if(r){e+=r[0].length;const c=n();if(t[e]!==")")throw new Error(`„)“ fehlt in „${i}“`);e++;for(let d=0;d{if(!(n in Ct))return t;const a=e(n);return typeof a=="string"?JSON.stringify(n==="getColor"?wh(a):a):String(a)}):i}function B3(i){const e=[];let t=0,n=!1,a=0;for(let s=0;s{const a=t==="turn"?((n+180)%360+360)%360-180:n;if(Math.abs(a)<1e-6)return[];const s=Math.round(Math.abs(a)*100)/100;return t==="drive"?[`${a>0?"forward":"backward"} ${s}`]:[a===-180?"turnRight 180":`${a>0?"turnRight":"turnLeft"} ${s}`]})}function Ih(i){let e=0;const t=i.trim(),n=()=>{const s=[];for(;;){for(;t[e]===" "||t[e]===",";)e++;if(e>=t.length||t[e]===")")return s;const r=/^(\d+)\s*[x×]\s*\(/u.exec(t.slice(e));if(r){e+=r[0].length;const u=n();if(t[e]!==")")throw new Error(`„)“ fehlt in „${i}“`);e++;for(let m=0;ma===i[s%t])){const a=ii(i.slice(0,t));return`${n} x ${t===1?a:`(${a})`}`}}return i.join(", ")}const kh=["cyberpi","screen","joystick","buttons","leds","lightSensor","microphone","shield","powerSwitch","motors","wheels","ultrasonic","lineSensor","caster","chassis"],L3=i=>kh.includes(i),W3=100;function Sh(i){switch(i.kind){case"finished":return"Simulation finished.";case"infiniteLoopWithoutBody":return"Infinite loop has no body.";case"unsupportedStatement":return`Unsupported statement: ${i.text}`;case"invalidExpression":return`Invalid expression: ${i.text}`;case"unknownVariable":return i.similar?`Unknown variable: ${i.text}. Java is case-sensitive: did you mean ${i.similar}?`:`Unknown variable: ${i.text}`;case"divisionByZero":return"Division by zero.";case"wholeNumberExpected":return"Please enter a whole number.";case"numberExpected":return"Please enter a number.";case"booleanExpected":return"Please enter true or false.";case"subprogramNotFound":return`No open diagram is called ${i.text}. The call was skipped.`;case"callTooDeep":return"Too many nested calls. Does a subprogram call itself?";case"callArguments":return`The call does not match the header of ${i.text}. Check the values in the parentheses.`;case"missingReturn":return`${i.text} ended without returning a value with return.`;case"fileNotFound":return`There is no file called ${i.text}.`;case"endOfFile":return`The file ${i.text} has no more lines.`;case"nullValue":return`${i.text} is null.`;case"other":return i.text}}class Re extends Error{constructor(e){super(Sh(e)),this.notice=e}}const Ke=i=>new Re({kind:"unsupportedStatement",text:i}),R=i=>new Re({kind:"invalidExpression",text:i}),p1=(i,e)=>{const t=e&&[...e.keys()].find(n=>n!==i&&n.toLowerCase()===i.toLowerCase());return new Re(t?{kind:"unknownVariable",text:i,similar:t}:{kind:"unknownVariable",text:i})},E3=()=>new Re({kind:"divisionByZero"}),us=new Map;function N3(i,e){us.set(i,e)}const Th=()=>[...us];function vu(i){return i instanceof Re?i.notice:{kind:"other",text:i instanceof Error?i.message:String(i)}}function J3(i){if(i===0)return"0";if(!Number.isFinite(i))return Number.isNaN(i)?"nan":i>0?"inf":"-inf";const e=Math.floor(Math.log10(Math.abs(Number(i.toPrecision(12)))));if(e<-4||e>=12){const[n,a]=i.toExponential(11).split("e"),s=n.includes(".")?n.replace(/0+$/,"").replace(/\.$/,""):n,r=Number(a);return`${s}e${r<0?"-":"+"}${String(Math.abs(r)).padStart(2,"0")}`}const t=i.toFixed(Math.max(0,11-e));return t.includes(".")?t.replace(/0+$/,"").replace(/\.$/,""):t}function yu(i){return Number.isFinite(i)&&Math.round(i)===i?i.toFixed(1):J3(i)}function je(i){switch(i.kind){case"int":return String(i.value);case"double":return yu(i.value);case"string":return i.value;case"boolean":return String(i.value);case"intArray":return"["+i.value.map(String).join(", ")+"]";case"doubleArray":return"["+i.value.map(yu).join(", ")+"]";case"stringArray":return"["+i.value.join(", ")+"]";case"booleanArray":return"["+i.value.map(String).join(", ")+"]";case"grid":return"["+F3(i).join(", ")+"]";case"reader":return`${i.className}(${i.file})`;case"writer":return`PrintWriter(${i.file})`;case"null":return"null"}}function F3(i){return i.value.map(e=>"["+e.map(t=>je(ko(i.elementType,t))).join(", ")+"]")}function ko(i,e){switch(i){case"int":return{kind:"int",value:e};case"double":return{kind:"double",value:e};case"string":return{kind:"string",value:e};case"boolean":return{kind:"boolean",value:e}}}function wu(i){return i==="string"?"":i==="boolean"?!1:0}function So(i){return i.kind==="intArray"||i.kind==="doubleArray"||i.kind==="stringArray"||i.kind==="booleanArray"||i.kind==="grid"}function R3(i){return i.kind==="int"||i.kind==="double"?i.value:NaN}const kt=i=>({kind:"int",value:i}),St=i=>({kind:"double",value:i}),Yl=i=>i!==void 0&&/\s/u.test(i),ms=i=>new RegExp("\\p{L}","u").test(i),ai=i=>new RegExp("\\p{N}","u").test(i);function ci(i){const e=Array.from(i);return e.length===0||!(ms(e[0])||e[0]==="_")?!1:e.every(t=>ms(t)||ai(t)||t==="_")}function tn(i){switch(i.toLowerCase()){case"int":return"int";case"double":return"double";case"string":return"string";case"char":return"string";case"boolean":case"bool":return"boolean";default:return}}function zu(i){return i.kind==="int"?"int":i.kind==="double"?"double":i.kind==="boolean"?"boolean":"string"}function lt(i){const e=Array.from(i);if(e.length===3&&e[0]==="'"&&e[2]==="'")return e[1];if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return;const t=e.slice(1,-1).join("");if(/^(?:[^"\\]|\\.)*$/u.test(t))return t.replaceAll('\\"','"').replaceAll("\\n",` +`)}function Iu(i){return i.replaceAll("(int)","").replaceAll("(double)","").trim()}function $l(i){const e=new Array(i.length).fill(!1);let t=0,n=!1,a=!1;return i.forEach((s,r)=>{if(n){a?a=!1:s==="\\"?a=!0:s==='"'&&(n=!1);return}switch(s){case'"':n=!0;break;case"(":case"[":t+=1;break;case")":case"]":t-=1;break;default:e[r]=t===0}}),e}function cs(i,e){const t=Array.from(i),n=Array.from(e),a=$l(t),s=[];let r=[],o=0;for(;ot[o+m]===u)&&a.slice(o,l).every(Boolean)){s.push(r.join("").trim()),r=[],o=l;continue}r.push(t[o]),o+=1}return s.push(r.join("").trim()),s}function G3(i){const e=Array.from(i),t=$l(e);for(let n=0;n=","<=","==","!="].includes(o)&&(a=o)}if(a===void 0&&(e[n]==="<"||e[n]===">")&&(a=e[n]),a===void 0)continue;const s=e.slice(0,n).join("").trim(),r=e.slice(n+a.length).join("").trim();return{lhs:s,op:a,rhs:r}}}function qs(i,e){let t=0,n=!1,a=!1;for(let s=e;se.length||!t.every((r,o)=>e[a+o]===r))continue;const s=a+t.length-1;if(qs(e,s)===e.length-1)return{lhs:e.slice(0,a).join("").trim(),rhs:e.slice(s+1,-1).join("").trim()}}}function aa(i){const e=i.trim();for(const t of["if","while","until","switch"]){if(!e.startsWith(t))continue;const n=e.slice(t.length);if(!(n===""||Yl(n[0])||n[0]==="("))continue;let a=n.trim();const s=jh(a);return s!==void 0&&(a=s),a===""?"true":a}return e===""?"true":e}function f1(i){const e=i.trim(),t=e.indexOf("[");if(!e.endsWith("]")||t<0)return;const n=e.slice(0,t).trim();if(!ci(n))return;const a=[];let s=t;for(;s2))return{arrayName:n,indexExpressions:a}}function V3(i){const e=i.trim();if(!e.endsWith(")"))return;const t=/^([A-Za-z_]\w*(?:\s*\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*([A-Za-z_]\w*)\s*\(/u.exec(e);if(!t)return;const n=Array.from(e),a=Array.from(t[0]).length-1;if(qs(n,a)!==n.length-1)return;const s=n.slice(a+1,-1).join("").trim();return{target:t[1],method:t[2],args:s===""?[]:cs(s,",")}}function ku(i){return ci(i)||f1(i)!==void 0}function Ir(i){const e=[];let t="",n=!1,a=!1,s=0;for(const r of i){if(a){t+=r,a=!1;continue}if(r==="\\"){t+=r,a=!0;continue}if(r==='"'){n=!n,t+=r;continue}if(!n&&r==="("&&(s+=1),!n&&r===")"&&(s-=1),r==="+"&&!n&&s===0){e.push(t),t="";continue}t+=r}if(n)throw R(i);return e.push(t),e}function Q3(i){const e=[];let t=0,n="";for(const a of i){if(a==="{"&&(t+=1),a==="}"&&(t-=1),a===","&&t===0){e.push(n),n="";continue}n+=a}return n.trim()!==""&&e.push(n),e}function Su(i){const e=Array.from(i),t=[];let n=0;for(;n1)throw R(i)}else if(!ai(e[n]))break;n+=1}const o=e.slice(s,n).join("");if(o==="."||!/^[0-9]*\.?[0-9]*$/.test(o))throw R(i);t.push({t:"number",literal:o,value:Number(o)});continue}if(ms(a)||a==="_"){const s=n;for(;n=0&&s=0&&o=0&&s|&&|\|\||^\s*!/u.test(e)}function e1(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function ju(i){const e=i.slice(0,3);for(;e.length<3;)e.push("");return e}function jo(i){const e=i.map(t=>e1(t).trim());return e.length===1&&e[0].includes(";")?ju(e[0].split(";").map(t=>t.trim())):ju(e)}const dt=i=>i.frame?{frame:i.frame,callPath:i.callPath}:{};function Yt(i,e=[],t={}){const n=[],a=s=>n.push(t.frame?{...s,...t}:s);return i.forEach((s,r)=>{const o=[...e,r],l=s.textLines.join(" ").trim();switch(s.type){case T.anweisung:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"statement"});break;case T.verzweigung:a({path:o,text:l||"true",kind:"branch",cases:s.cases});break;case T.fallauswahl:a({path:o,text:l||"0",kind:"switchSelection",cases:s.cases});break;case T.forSchleife:a({path:o,text:l,kind:"forLoopStart",loopBody:s.loopBody,forParts:jo(s.textLines)});break;case T.whileSchleife:a({path:o,text:l||"true",kind:"whileLoop",loopBody:s.loopBody});break;case T.doUntilSchleife:a({path:o,text:l||"true",kind:"doUntilLoop",loopBody:s.loopBody});break;case T.endlosschleife:a({path:o,text:l||"true",kind:"infiniteLoop",loopBody:s.loopBody});break;case T.aussprung:a({path:o,text:l,kind:"jump"});break;case T.aufruf:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"call"});break}}),n}function U3(i,e){const t=i.trim().replaceAll(",",".");switch(e){case"int":if(!/^[+-]?[0-9]+$/.test(t))throw new Re({kind:"wholeNumberExpected"});return kt(Number(t));case"double":if(!/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$/.test(t))throw new Re({kind:"numberExpected"});return St(Number(t));case"string":return{kind:"string",value:i};case"boolean":switch(t.toLowerCase()){case"true":case"wahr":return{kind:"boolean",value:!0};case"false":case"falsch":return{kind:"boolean",value:!1};default:throw new Re({kind:"booleanExpected"})}}}function _u(){return{stepIndex:0,variables:new Map,outputLines:[],isHalted:!1,files:new Map,robotActions:[]}}function Y3(i,e){for(let t=0;tt===e.path[n])}function It(i){const e=/^(void|int|double|String|boolean)\s+([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(e1(i));if(!e)return;const t=[];if(e[3].trim()!=="")for(const n of e[3].split(",")){const a=/^(int|double|String|boolean|char)\s*((?:\[\s*\]){0,2})\s+([A-Za-z_]\w*)$/u.exec(n.trim());if(!a)return;const s=(a[2].match(/\[/gu)??[]).length;t.push({type:tn(a[1]),name:a[3],...s>0?{dims:s}:{}})}return{returnType:tn(e[1]),name:e[2],params:t}}function _h(i){const e=/^(?:(?:(int|double|String|boolean)\s+)?([A-Za-z_]\w*)\s*=\s*)?([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(e1(i));if(e)return{targetType:e[1]?tn(e[1]):void 0,target:e[2],name:e[3],args:e[4].trim()===""?[]:cs(e[4],",")}}function ds(i){var t,n;const e=e1(i);return((t=It(e))==null?void 0:t.name)??((n=_h(e))==null?void 0:n.name)??e.replace(/\(\s*\)$/u,"").trim()}class Ti{constructor(e,t=()=>{}){y(this,"steps");y(this,"state",_u());y(this,"nextFrame",1);y(this,"callDepth",0);y(this,"frames",new Map);y(this,"peeking",!1);y(this,"robotSensors",{});y(this,"pseudocode");y(this,"decided");y(this,"afterOutput",!1);this.resolveSubprogram=t,this.steps=Yt(e.elements),this.pseudocode=!!e.pseudocode}get currentStepPath(){const e=this.steps[this.state.stepIndex];return(e==null?void 0:e.callPath)??(e==null?void 0:e.path)}get canStep(){return!this.state.isHalted&&!this.state.inputRequest&&this.state.stepIndex ${je(n)}`}catch(n){this.state.inputErrorNotice=vu(n);return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.state.stepIndex+=1,this.state.notice=this.finishedIfAtEnd()}}provideDecision(e){var s;if(((s=this.state.inputRequest)==null?void 0:s.valueType)==="string")return this.state.inputRequest=void 0,this.decided=e.trim(),this.step();const t=e.trim().toLowerCase(),n=["true","wahr","ja","yes","sim","verdadeiro"].includes(t),a=["false","falsch","nein","no","não","nao","falso"].includes(t);if(!n&&!a){this.state.inputErrorNotice={kind:"booleanExpected"};return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.decided=n,this.step()}condition(e){if(!this.pseudocode)return this.evaluateBool(e);const t=this.decided;if(typeof t=="boolean")return this.decided=void 0,t;this.state.inputRequest={variableName:"",valueType:"boolean",prompt:`${e} (true/false)`,decision:!0},this.state.inputErrorNotice=void 0,this.state.notice=void 0}finishedIfAtEnd(){return this.state.stepIndex>=this.steps.length?{kind:"finished"}:void 0}splice(e){this.steps.splice(this.state.stepIndex,1,...e)}noticeAfterEntering(e){return e.length>0?void 0:this.finishedIfAtEnd()}executeBranch(e){const t=e.cases;if(!t||t.length<2)throw Ke(e.text);const n=aa(e.text),a=this.condition(n);if(a===void 0)return;const s=a?0:1,r=Yt(t[s].elements,[...e.path,s],dt(e));this.splice(r),this.state.lastTrace=`${n} -> ${a}`,this.state.notice=this.noticeAfterEntering(r)}executeSwitchSelection(e){const t=e.cases;if(!t||t.length===0)throw Ke(e.text);const n=aa(e.text);let a;if(this.pseudocode){const r=this.decided;if(typeof r!="string"){const l=t.map(u=>u.name).join(" / ");this.state.inputRequest={variableName:"",valueType:"string",prompt:`${n} (${l})`,decision:!0},this.state.notice=void 0;return}this.decided=void 0;const o=t.findIndex(l=>l.name.trim().toLowerCase()===r.toLowerCase());a=o>=0?o:t.length-1}else a=Y3(this.evaluateSwitchSelector(n),t)??t.length-1;const s=Yt(t[a].elements,[...e.path,a],dt(e));this.splice(s),this.state.lastTrace=`${n} -> ${t[a].name}`,this.state.notice=this.noticeAfterEntering(s)}executeForLoopStart(e){if(this.pseudocode)return this.splice([{...e,kind:"whileLoop"}]);const t=jo(e.forParts??[e.text]);t[0]!==""&&this.executeStatement(t[0]),this.splice([{...dt(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}executeForLoopCondition(e){const t=jo(e.forParts??[e.text]),n=t[1]===""?"true":t[1],a=this.condition(n);if(a!==void 0)if(this.state.lastTrace=`${n} -> ${a}`,a){const s=Yt(e.loopBody??[],[...e.path,0],dt(e));this.splice([...s,{...dt(e),path:e.path,text:t[2],kind:"forLoopIncrement",loopBody:e.loopBody,forParts:t},{...dt(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}executeForLoopIncrement(e){const t=e.text.trim();t!==""&&this.executeIncrement(t),this.splice([])}executeWhileLoop(e){const t=aa(e.text),n=this.condition(t);if(n!==void 0)if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Yt(e.loopBody??[],[...e.path,0],dt(e));this.splice([...a,{...dt(e),path:e.path,text:e.text,kind:"whileLoop",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(a)}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterDoUntilLoop(e){const t=Yt(e.loopBody??[],[...e.path,0],dt(e));this.splice([...t,{...dt(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(t)}executeDoUntilCondition(e){const t=aa(e.text),n=this.condition(t);if(n!==void 0)if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Yt(e.loopBody??[],[...e.path,0],dt(e));this.splice([...a,{...dt(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterInfiniteLoop(e){const t=Yt(e.loopBody??[],[...e.path,0],dt(e));this.splice([...t,{...dt(e),path:e.path,text:e.text,kind:"infiniteLoop",loopBody:e.loopBody}]),this.state.lastTrace="true -> true",this.state.notice=t.length>0?void 0:{kind:"infiniteLoopWithoutBody"}}executeJump(e){const t=e.frame??0,n=o=>o.lengthl===e.path[u]);let a=this.steps.length,s="end";for(let o=this.state.stepIndex+1;o ${s}`,s==="return"&&this.finishFrame(r),this.state.notice=this.finishedIfAtEnd()}executeCall(e){const t=e.text,n=this.resolveSubprogram(ds(t));if(!n){this.splice([]),this.state.lastTrace=`${t} -> ?`,this.state.notice={kind:"subprogramNotFound",text:t},this.state.stepIndex>=this.steps.length&&(this.state.notice={kind:"finished"});return}const a=_h(t),s=It(n.caption);if(s?((a==null?void 0:a.args.length)??0)!==s.params.length||(a==null?void 0:a.target)!==void 0&&!s.returnType:a!==void 0&&(a.args.length>0||a.target!==void 0))throw new Re({kind:"callArguments",text:(s==null?void 0:s.name)??ds(t)});if(this.callDepth>=W3)throw new Re({kind:"callTooDeep"});const o=new Map,l=[];s==null||s.params.forEach((d,h)=>{const g=a.args[h].trim();if(!d.dims){o.set(d.name,this.evaluateExpression(g,d.type));return}const f=this.state.variables.get(g);if(!f)throw/^[A-Za-z_]\w*$/u.test(g)?p1(g,this.state.variables):R(g);if(!(d.dims===1?f.kind===`${d.type}Array`:f.kind==="grid"&&f.elementType===d.type))throw R(g);o.set(d.name,f),l.push({param:d.name,callerName:g})}),this.callDepth+=1;const u={frame:this.nextFrame++,callPath:e.callPath??e.path};s&&(this.frames.set(u.frame,{saved:this.state.variables,header:s,call:a,references:l}),this.state.variables=o);const m=Yt(n.elements,[],u);this.splice([...m,{...u,path:e.path,text:t,kind:"callEnd"}]);const c=s==null?void 0:s.params.map((d,h)=>`${d.name} = ${d.dims?a.args[h].trim():je(o.get(d.name))}`).join(", ");this.state.lastTrace=c?`${t} -> ${c}`:`${t} -> call`}executeCallEnd(e){this.callDepth-=1,this.splice([]),this.state.lastTrace=`${e.text} -> return`,this.finishFrame(e),this.state.notice=this.finishedIfAtEnd()}executeReturn(e){const t=e.frame??0,n=e1(e.text).slice(6).trim(),a=this.frames.get(t);if(a&&n!==""){if(!a.header.returnType)throw R(e.text);a.returnValue=this.evaluateExpression(n,a.header.returnType)}const s=a!=null&&a.returnValue?`${e.text} -> ${je(a.returnValue)}`:`${e.text} -> return`;if(t===0){this.steps.splice(this.state.stepIndex),this.state.lastTrace=s,this.state.notice={kind:"finished"};return}let r=this.state.stepIndex+1;for(;r0?new Map(t.saved):t.saved;for(const m of t.references){const c=this.state.variables.get(m.param);c&&n.set(m.callerName,c)}this.state.variables=n;const a=t.returnValue;if(t.header.returnType&&!a)throw new Re({kind:"missingReturn",text:t.header.name});const s=(l=t.call)==null?void 0:l.target;if(!s||!a)return;let r=(u=t.call)==null?void 0:u.targetType;if(!r)try{r=this.inferTargetValueType(s)}catch{r=t.header.returnType}const o=r==="double"&&a.kind==="int"?St(a.value):r==="string"?{kind:"string",value:je(a)}:a;if(zu(o)!==r)throw R(e.text);this.assignValue(o,s),this.state.lastTrace=`${s} = ${e.text.slice(e.text.indexOf("=")+1).trim()} -> ${je(o)}`}executeStatement(e){const t=this.state,n=e.trim(),a=n.toLowerCase(),s=this.afterOutput;if(this.afterOutput=!1,a.startsWith("input:")){t.inputRequest=this.parseInputRequest(n,s),t.outputLineOpen=!1,t.inputErrorNotice=void 0;return}const r=/^System\s*\.\s*out\s*\.\s*(println|print)\s*\(([\s\S]*)\)\s*;?$/u.exec(n);if(a.startsWith("output:")||a.startsWith("print:")||r){const v=r?r[2]:n.slice(a.startsWith("output:")?7:6),w=this.peek(()=>this.renderOutputExpression(v)),z=v.trim()===""?"":this.evaluateOutputExpression(v),I=(r==null?void 0:r[1])==="print",k=I&&z.endsWith(` +`),[S,..._]=(k?z.slice(0,-1):z).split(` +`);t.outputLineOpen&&t.outputLines.length?t.outputLines[t.outputLines.length-1]+=S:t.outputLines.push(S),t.outputLines.push(..._),t.outputLineOpen=I&&!k,this.afterOutput=!0,t.lastTrace=`${w} -> ${z}`;return}const o=M3(n);if(o){this.executeMBotCommand(o.method,o.args,n);return}if(this.executeFileStatement(n))return;if(n.endsWith("++")||n.endsWith("--")||n.includes("+=")||n.includes("-=")){this.executeIncrement(n);return}const l=/^(?:final\s+)?([A-Za-z]+)\s+([A-Za-z_]\w*(?:\s*,\s*[A-Za-z_]\w*)*)$/u.exec(e1(n).trim()),u=l?tn(l[1]):void 0;if(l&&u){const v=l[2].split(",").map(w=>w.trim());for(const w of v)t.variables.set(w,ko(u,wu(u)));t.lastTrace=v.map(w=>`${w} = ${je(t.variables.get(w))}`).join(", ");return}const m=n.indexOf("=");if(m<0)throw Ke(n);const c=n.slice(0,m).trim(),d=n.slice(m+1),h=this.parseArrayDeclaration(c,d);if(h){t.variables.set(h.name,h.value),t.lastTrace=`${h.name} = new ${h.typeName}[${h.count}]`;return}const g=this.parseAssignmentTarget(c);let f;try{f=this.peek(()=>this.renderNumericExpression(d))}catch{f=d.trim()}let x=g.valueType;if(!x)try{x=this.inferTargetValueType(g.variableName)}catch{x="int"}const b=this.evaluateExpression(d,x);this.assignValue(b,g.variableName),t.lastTrace=`${g.variableName} = ${f} -> ${je(b)}`}executeMBotCommand(e,t,n){var r;if((r=Si[e])!=null&&r.text){const o=Si[e];if(t.length!==o.args+1)throw R(n);const l=os(e,t.slice(0,-1).map(c=>this.evaluateDouble(c)));if(!l)throw R(n);const u=bu(e,l,this.evaluateOutputExpression(t[t.length-1])),m=o.choices;if(m&&!m.includes(u.text??""))throw R(`${n} (${m.join(", ")})`);this.state.robotActions.push(u),this.state.lastTrace=`${n} -> ${u.label}`;return}const a=os(e,t.map(o=>this.evaluateDouble(o)));if(!a)throw R(n);const s=bu(e,a);this.state.robotActions.push(s),this.state.lastTrace=`${n} -> ${s.label}`}executeFileStatement(e){const t=this.state,n=e1(e).trim(),a=/^(?:(Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*new\s+(Scanner|BufferedReader|PrintWriter)\s*\(([\s\S]*)\)$/u.exec(n);if(a){const[,m,c,d,h]=a;if(m&&m!==d)throw R(n);const g=d==="Scanner"?/^new\s+File\s*\(([\s\S]+)\)$/u.exec(h.trim()):d==="BufferedReader"?/^new\s+FileReader\s*\(([\s\S]+)\)$/u.exec(h.trim()):/^(?:new\s+(?:File|FileWriter)\s*\(([\s\S]+)\)|([\s\S]+))$/u.exec(h.trim());if(!g)throw Ke(n);const f=this.fileNameValue(g[1]??g[2]);if(d==="PrintWriter")t.variables.set(c,{kind:"writer",file:f,text:""});else{const b=this.fileContent(f).split(/\r?\n/u);b[b.length-1]===""&&b.pop(),t.variables.set(c,{kind:"reader",className:d,file:f,lines:b,next:0})}return t.lastTrace=`${c} = new ${d}(${f})`,!0}const s=/^Files\s*\.\s*writeString\s*\(\s*(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(([^()]+)\)\s*,([\s\S]+)\)$/u.exec(n);if(s){const m=this.fileNameValue(s[1]),c=this.evaluateOutputExpression(s[2]);return t.files.set(m,c),t.lastTrace=`${m} ← ${JSON.stringify(c)}`,!0}const r=/^([A-Za-z_]\w*)\s*\.\s*(println|print|close)\s*\(([\s\S]*)\)$/u.exec(n),o=r&&t.variables.get(r[1]);if(!r||!o)return!1;if(o.kind==="null")throw new Re({kind:"nullValue",text:r[1]});if(o.kind==="reader"&&r[2]==="close")return t.lastTrace=`${r[1]}.close()`,!0;if(o.kind!=="writer")return!1;if(r[2]==="close")return t.files.set(o.file,o.text),t.lastTrace=`${o.file} ← ${JSON.stringify(o.text)}`,!0;const l=r[3].trim()===""?"":this.evaluateOutputExpression(r[3]),u=r[2]==="println"?l+` +`:l;return t.variables.set(r[1],{...o,text:o.text+u}),t.lastTrace=`${r[1]}.${r[2]}(${JSON.stringify(l)})`,!0}fileNameValue(e){const t=e.trim(),n=lt(t);if(n!==void 0)return n;const a=this.evaluateReference(t);if((a==null?void 0:a.kind)==="string")return a.value;throw R(t)}fileContent(e){const t=this.state.files.get(e)??us.get(e);if(t===void 0)throw new Re({kind:"fileNotFound",text:e});return t}readerMethod(e,t,n,a){if(n.args.length)throw R(a);const s=t.next0?"+":"-";if(r.kind==="int"){t.set(s,kt(r.value+a)),this.state.lastTrace=`${s} = ${r.value} ${o} 1 -> ${r.value+a}`;return}if(r.kind==="double"){const l=r.value+a;t.set(s,St(l)),this.state.lastTrace=`${s} = ${je(r)} ${o} 1 -> ${je(St(l))}`;return}throw Ke(e)}for(const[n,a]of[["+=",1],["-=",-1]]){const s=e.indexOf(n);if(s<0)continue;const r=e.slice(0,s).trim(),o=e.slice(s+2),l=t.get(r);if(!ci(r)||!l)throw Ke(e);const u=a>0?"+":"-";if(l.kind==="int"){const m=this.evaluateInt(o),c=l.value+a*m;t.set(r,kt(c)),this.state.lastTrace=`${r} = ${l.value} ${u} ${m} -> ${c}`;return}if(l.kind==="double"){const m=this.evaluateDouble(o),c=l.value+a*m;t.set(r,St(c)),this.state.lastTrace=`${r} = ${je(l)} ${u} ${je(St(m))} -> ${je(St(c))}`;return}throw Ke(e)}this.executeStatement(e)}parseAssignmentTarget(e){if(f1(e))return{variableName:e.trim()};const t=e.split(/\s+/u).filter(Boolean);let n,a;if(t.length===1)n=t[0];else if(t.length===2&&tn(t[0]))n=t[1],a=tn(t[0]);else if(t.length===3&&t[0]==="const"&&tn(t[1]))n=t[2],a=tn(t[1]);else throw Ke(e);if(!ku(n))throw Ke(e);return{variableName:n,valueType:a}}parseInputRequest(e,t=!1){const n=e.slice(6).trim(),a=/^(\S+)(?:\s+(\S+))?(?:\s+([\s\S]*))?$/u.exec(n);if(!a)throw Ke(e);const s=[a[1],a[2],a[3]].filter(c=>c!==void 0);let r,o,l;const u=tn(s[0]);if(s.length>=2&&u?(r=s[1],o=u,l=(s[2]??"").trim()):(r=s[0],o=this.inferTargetValueType(r),l=(s[1]??"").trim()),!ku(r))throw Ke(e);const m=lt(l)??l;return m===""&&t?this.state.outputLineOpen?{variableName:r,valueType:o,prompt:"",continuesLine:!0}:{variableName:r,valueType:o,prompt:""}:{variableName:r,valueType:o,prompt:m===""?`${r}:`:m}}parseArrayDeclaration(e,t){const n=e.split(/\s+/u).filter(Boolean);if(n.length!==2||!n[0].endsWith("[]"))return;const a=n[0].endsWith("[][]"),s=n[0].slice(0,a?-4:-2),r=tn(s),o=n[1];if(!r||!ci(o))throw Ke(e);if(a)return this.parseGridDeclaration(o,s,r,t);const l=t.trim();if(l.startsWith("{")&&l.endsWith("}")){const h=l.slice(1,-1).split(",").map(f=>f.trim());let g;switch(r){case"int":g={kind:"intArray",value:h.map(f=>this.evaluateInt(f))};break;case"double":g={kind:"doubleArray",value:h.map(f=>this.evaluateDouble(f))};break;case"string":g={kind:"stringArray",value:h.map(f=>lt(f)??this.evaluateOutputExpression(f))};break;case"boolean":g={kind:"booleanArray",value:h.map(f=>this.evaluateBool(f))};break}return{name:o,typeName:s,count:h.length,value:g}}const u=`new ${s}[`;if(!l.startsWith(u)){const h=this.evaluateStringMethod(l);if((h==null?void 0:h.kind)==="stringArray"&&r==="string")return{name:o,typeName:s,count:h.value.length,value:h}}if(!l.startsWith(u)||!l.endsWith("]"))throw Ke(t);const m=l.slice(u.length,-1),c=this.evaluateInt(m);if(c<0)throw R(m);const d=r==="int"?{kind:"intArray",value:new Array(c).fill(0)}:r==="double"?{kind:"doubleArray",value:new Array(c).fill(0)}:r==="boolean"?{kind:"booleanArray",value:new Array(c).fill(!1)}:{kind:"stringArray",value:new Array(c).fill("")};return{name:o,typeName:s,count:c,value:d}}parseGridDeclaration(e,t,n,a){var c;const s=a.trim(),r=d=>{switch(n){case"int":return this.evaluateInt(d);case"double":return this.evaluateDouble(d);case"boolean":return this.evaluateBool(d);case"string":return lt(d.trim())??this.evaluateOutputExpression(d)}};if(s.startsWith("{")&&s.endsWith("}")){const d=Q3(s.slice(1,-1)).map(h=>{const g=h.trim();if(!g.startsWith("{")||!g.endsWith("}"))throw R(g);return g.slice(1,-1).trim()===""?[]:g.slice(1,-1).split(",").map(f=>r(f.trim()))});return{name:e,typeName:t,count:`${d.length}][${((c=d[0])==null?void 0:c.length)??0}`,value:{kind:"grid",elementType:n,value:d}}}const o=new RegExp(String.raw`^new\s+${t}\s*\[(.+)\]\s*\[(.+)\]$`,"u").exec(s);if(!o)throw Ke(a);const l=this.evaluateInt(o[1]),u=this.evaluateInt(o[2]);if(l<0)throw R(o[1]);if(u<0)throw R(o[2]);const m={kind:"grid",elementType:n,value:Array.from({length:l},()=>new Array(u).fill(wu(n)))};return{name:e,typeName:t,count:`${l}][${u}`,value:m}}arrayIndex(e){const t=this.evaluateInt(e);if(t<0)throw R(e);return t}evaluateReference(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n;const a=this.evaluateStringMethod(t);if(a)return a;const s=/^\(\s*char\s*\)\s*(.+)$/su.exec(t);if(s){const o=this.evaluateInt(s[1]);if(!(o>=0&&o<=1114111))throw R(t);return{kind:"string",value:String.fromCodePoint(o)}}const r=f1(t);if(r)return this.valueInArray(r.arrayName,r.indexExpressions.map(o=>this.arrayIndex(o)))}evaluateStringMethod(e){const t=V3(e);if(!t)return;const n=this.evaluateStaticCall(e,t);if(n)return n;const a=this.state.variables.get(t.target.trim());if((a==null?void 0:a.kind)==="reader")return this.readerMethod(t.target.trim(),a,t,e);if((a==null?void 0:a.kind)==="null")throw new Re({kind:"nullValue",text:t.target.trim()});const s=lt(t.target)??this.stringValueOf(t.target);if(s===void 0)return;const r=t.args,o=d=>{const h=r[d];if(h===void 0)throw R(e);const g=lt(h.trim());if(g!==void 0)return g;const f=this.evaluateReference(h);if((f==null?void 0:f.kind)==="string")return f.value;throw R(h)},l=d=>{if(r[d]===void 0)throw R(e);return this.evaluateInt(r[d])},u=d=>{if(r.length!==d)throw R(e)},m=Array.from(s),c=(d,h)=>{if(d<0||d>h)throw R(e);return d};switch(t.method){case"length":return u(0),kt(m.length);case"charAt":return u(1),{kind:"string",value:m[c(l(0),m.length-1)]};case"substring":{if(r.length!==1&&r.length!==2)throw R(e);const d=c(l(0),m.length),h=r.length===2?c(l(1),m.length):m.length;if(h0&&h[h.length-1]==="";)h.pop();return{kind:"stringArray",value:h}}default:return}}evaluateStaticCall(e,t){const n=()=>{if(t.args.length!==1)throw R(e);return t.args[0]},a=s=>{const r=lt(s.trim());if(r!==void 0)return r;const o=this.evaluateReference(s);if((o==null?void 0:o.kind)==="string")return o.value;throw R(s)};switch(`${t.target}.${t.method}`){case"Integer.parseInt":{const s=a(n()).trim();if(!/^[+-]?\d+$/u.test(s))throw new Re({kind:"wholeNumberExpected"});return kt(Number(s))}case"Double.parseDouble":{const s=Number(a(n()).trim());if(!Number.isFinite(s))throw new Re({kind:"numberExpected"});return St(s)}case"String.valueOf":return{kind:"string",value:this.evaluateOutputExpression(n())};case"Files.readString":{const s=/^(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)$/u.exec(n().trim());if(!s)throw R(e);const r=lt(s[1]),o=us.get(r);if(o===void 0)throw new Re({kind:"fileNotFound",text:r});return{kind:"string",value:o}}default:return}}stringValueOf(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n.kind==="string"?n.value:void 0;const a=f1(t);if(!a)return;const s=this.valueInArray(a.arrayName,a.indexExpressions.map(r=>this.arrayIndex(r)));return s.kind==="string"?s.value:void 0}substituteStringCalls(e){if(!e.includes("("))return e;let t="",n=e;const a=/([A-Za-z_]\w*(?:\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*(length|indexOf|lastIndexOf|compareTo|charAt|parseInt|parseDouble)\s*\(/u;for(let s=a.exec(n);s;s=a.exec(n)){const r=s.index+s[0].length-1,o=qs(Array.from(n),Array.from(n.slice(0,r)).length);if(o===void 0)break;const l=Array.from(n),u=l.slice(Array.from(n.slice(0,s.index)).length,o+1).join(""),m=this.evaluateStringMethod(u),c=l.slice(0,Array.from(n.slice(0,s.index)).length).join(""),d=(m==null?void 0:m.kind)==="string"?To(m.value):void 0;(m==null?void 0:m.kind)==="int"?t+=c+String(m.value):(m==null?void 0:m.kind)==="double"?t+=c+(Number.isInteger(m.value)?m.value.toFixed(1):String(m.value)):d!==void 0?t+=c+String(d):t+=c+u,n=l.slice(o+1).join("")}return t+n}valueInArray(e,t){const n=this.state.variables.get(e);if(!n)throw p1(e,this.state.variables);const a=`${e}[${t.join("][")}]`;if(n.kind==="grid"){if(t.length!==2)throw R(a);const r=n.value[t[0]];if(!r||t[1]>=r.length)throw R(a);return ko(n.elementType,r[t[1]])}if(t.length!==1)throw R(a);const s=t[0];if(!So(n))throw R(e);if(s>=n.value.length)throw R(a);switch(n.kind){case"intArray":return kt(n.value[s]);case"doubleArray":return St(n.value[s]);case"stringArray":return{kind:"string",value:n.value[s]};case"booleanArray":return{kind:"boolean",value:n.value[s]};default:throw R(e)}}inferTargetValueType(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return zu(n);const a=f1(t);if(a){const s=this.state.variables.get(a.arrayName);if(!s)throw p1(a.arrayName,this.state.variables);if(s.kind==="intArray")return"int";if(s.kind==="doubleArray")return"double";if(s.kind==="stringArray")return"string";if(s.kind==="booleanArray")return"boolean";if(s.kind==="grid")return s.elementType;throw R(a.arrayName)}throw Ke(e)}assignValue(e,t){const n=t.trim(),a=f1(n);if(!a){this.state.variables.set(n,e);return}const s=a.indexExpressions.map(u=>this.arrayIndex(u)),r=this.state.variables.get(a.arrayName);if(!r)throw p1(a.arrayName,this.state.variables);if(r.kind==="grid"){if(s.length!==2||s[0]>=r.value.length||s[1]>=r.value[s[0]].length)throw R(n);const u=r.elementType==="double"&&e.kind==="int"||e.kind===r.elementType?e.value:void 0;if(u===void 0||So(e))throw R(n);const m=r.value.map(c=>[...c]);m[s[0]][s[1]]=u,this.state.variables.set(a.arrayName,{...r,value:m});return}if(s.length!==1)throw R(n);const o=s[0];let l;if(r.kind==="intArray"&&e.kind==="int")l={kind:"intArray",value:[...r.value]};else if(r.kind==="doubleArray"&&(e.kind==="double"||e.kind==="int"))l={kind:"doubleArray",value:[...r.value]};else if(r.kind==="stringArray"&&e.kind==="string")l={kind:"stringArray",value:[...r.value]};else if(r.kind==="booleanArray"&&e.kind==="boolean")l={kind:"booleanArray",value:[...r.value]};else throw R(n);if(o>=l.value.length)throw R(n);l.value[o]=e.value,this.state.variables.set(a.arrayName,l)}evaluateOutputExpression(e){const t=this.withSensors(e).trim();if(Tu(t)&&Ir(t).every(s=>lt(s.trim())===void 0)&&!this.evaluateReference(t))return String(this.evaluateBool(t));let n,a;for(const s of Ir(this.withSensors(e))){const r=s.trim(),o=lt(r),l=o!==void 0?{kind:"string",value:o}:this.evaluateReference(r)??(Tu(r)?{kind:"boolean",value:this.evaluateBool(r)}:this.evaluateNumeric(r)),u=l.kind==="int"||l.kind==="double";if(a===void 0&&u){n?n=n.kind==="int"&&l.kind==="int"?kt(n.value+l.value):St(n.value+l.value):n=l;continue}a=(a??(n?je(n):""))+je(l),n=void 0}return a??(n?je(n):"")}renderOutputExpression(e){return Ir(e).map(t=>{const n=t.trim();if(lt(n)!==void 0)return n;const a=this.evaluateReference(n);if(a)return je(a);try{return this.renderNumericExpression(n)}catch{return n}}).join(" + ")}evaluateExpression(e,t){switch(t){case"int":return kt(this.evaluateInt(e));case"double":return St(this.evaluateDouble(e));case"string":{const n=e.trim(),a=lt(n);if(a!==void 0)return{kind:"string",value:a};if(n==="null")return{kind:"null"};const s=this.evaluateReference(n);return(s==null?void 0:s.kind)==="null"?s:s?{kind:"string",value:je(s)}:{kind:"string",value:this.evaluateOutputExpression(e)}}case"boolean":return{kind:"boolean",value:this.evaluateBool(e)}}}evaluateNumeric(e){const{v:t,int:n}=this.parser(e).parseNumber();return n||Number.isFinite(t)&&Math.round(t)===t?kt(t):St(t)}parser(e){const t=this.withSensors(e);return new q3(Su(Iu(this.substituteStringCalls(t))),this.state.variables)}withSensors(e){return D3(e,t=>this.robotSensors[t]??Ct[t].simulated)}evaluateInt(e){return this.parser(e).parseInt()}evaluateDouble(e){return this.parser(e).parseDouble()}evaluateBool(e){const t=this.withSensors(e).trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);if((n==null?void 0:n.kind)==="boolean")return n.value;const a=cs(t,"||");if(a.length>1)return a.some(u=>this.evaluateBool(u));const s=cs(t,"&&");if(s.length>1)return s.every(u=>this.evaluateBool(u));if(t.startsWith("!")&&!t.startsWith("!="))return!this.evaluateBool(t.slice(1));const r=jh(t);if(r!==void 0)return this.evaluateBool(r);const o=H3(t);if(o)return this.evaluateComparison(o.lhs,"==",o.rhs);const l=G3(t);if(l)return this.evaluateComparison(l.lhs,l.op,l.rhs);if(this.stringOperand(t)!==void 0)throw R(t);return this.evaluateDouble(t)!==0}evaluateComparison(e,t,n){if((e.trim()==="null"||n.trim()==="null")&&(t==="=="||t==="!=")){const m=d=>{var h;return d.trim()==="null"||((h=this.evaluateReference(d))==null?void 0:h.kind)==="null"},c=m(e)===m(n);return t==="=="?c:!c}const a=this.booleanOperand(e),s=this.booleanOperand(n);if((a!==void 0||s!==void 0)&&(t==="=="||t==="!=")){const m=a??this.evaluateBool(e),c=s??this.evaluateBool(n);return t==="=="?m===c:m!==c}const r=this.stringOperand(e),o=this.stringOperand(n);let l,u;if(r!==void 0||o!==void 0){if(r===void 0||o===void 0)throw R(`${e} ${t} ${n}`);l=r,u=o}else l=this.evaluateDouble(e),u=this.evaluateDouble(n);switch(t){case"==":return l===u;case"!=":return l!==u;case"<":return l":return l>u;case">=":return l>=u;default:throw R(`${e} ${t} ${n}`)}}booleanOperand(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);return(n==null?void 0:n.kind)==="boolean"?n.value:void 0}stringOperand(e){const t=e.trim(),n=lt(t);if(n!==void 0)return n;const a=this.evaluateReference(t);return(a==null?void 0:a.kind)==="string"?a.value:void 0}evaluateSwitchSelector(e){const t=this.withSensors(e).trim(),n=lt(t);if(n!==void 0)return{kind:"text",value:n};const a=this.state.variables.get(t);if(a)switch(a.kind){case"int":return{kind:"int",value:a.value};case"double":return{kind:"int",value:Math.trunc(a.value)};case"string":return{kind:"text",value:a.value};default:throw R(t)}return/^[+-]?[0-9]+$/.test(t)?{kind:"int",value:Number(t)}:{kind:"int",value:this.evaluateInt(t)}}renderNumericExpression(e){return Su(Iu(e)).map(t=>{if(t.t==="number")return t.literal;if(t.t==="identifier"){const n=this.state.variables.get(t.name);if(!n)throw p1(t.name,this.state.variables);return je(n)}return t.t}).join(" ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(" . ",".").replaceAll("[ ","[").replaceAll(" ]","]")}}const Ch={baseIndent:0,indentPerLevel:4,includeDiagramTextAsComments:!1,includeEmptyElseBranch:!0,pseudocodeNote:"Pseudocode – not a runnable program"};function hs(i,e,t={},n=[]){const a=Xl(i,e,t);let s="";e==="javascript"&&(s+=`"use strict"; `);const r=[i,...e==="java"?[]:n];if(e==="python"&&r.some(Gh)&&(s+=`import random @@ -28,50 +28,50 @@ except: `),i.pseudocode&&(s+=(e==="python"?"# ":"// ")+a.pseudocodeNote+` -`),e!=="java")for(const u of n){if(u===i)continue;const m=It(u.caption);m&&(s+=jo(u,m,e,t,0)+` -`)}const o=It(i.caption),l={out:""};if(o)l.out=jo(i,o,e,t,a.baseIndent);else for(const u of i.elements)Xs(u,e,a,a.baseIndent,l);if(s+=l.out,s.trim()===""){const u=K3(e);return e==="javascript"?`"use strict"; +`),e!=="java")for(const u of n){if(u===i)continue;const m=It(u.caption);m&&(s+=_o(u,m,e,t,0)+` +`)}const o=It(i.caption),l={out:""};if(o)l.out=_o(i,o,e,t,a.baseIndent);else for(const u of i.elements)Xs(u,e,a,a.baseIndent,l);if(s+=l.out,s.trim()===""){const u=K3(e);return e==="javascript"?`"use strict"; -`+u:u}return Qh(s.replace(/^[\n\r]+|[\n\r]+$/g,""),e)}function Xl(i,e,t){const n={...Ch,...t,jsIntVariables:new Set,arrayElementTypes:lx(i),stringVariables:ox(i)};return e!=="java"&&(n.jsIntVariables=Cx(i)),n}const Cu=i=>i==="string"?"String":i===void 0?"void":i;function Ah(i){const e=i.params.map(t=>`${Cu(t.type)}${"[]".repeat(t.dims??0)} ${t.name}`).join(", ");return`public static ${Cu(i.returnType)} ${i.name}(${e}) {`}function jo(i,e,t,n,a){const s=Xl(i,t,n);for(const l of e.params)l.dims||(l.type==="int"&&s.jsIntVariables.add(l.name),l.type==="string"&&s.stringVariables.add(l.name));const r=e.params.map(l=>l.name).join(", "),o={out:""};for(const l of i.elements)Xs(l,t,s,a+s.indentPerLevel,o);switch(o.out.trim()===""&&(o.out=B(a+s.indentPerLevel)+(t==="python"?`pass +`+u:u}return qh(s.replace(/^[\n\r]+|[\n\r]+$/g,""),e)}function Xl(i,e,t){const n={...Ch,...t,jsIntVariables:new Set,arrayElementTypes:lx(i),stringVariables:ox(i)};return e!=="java"&&(n.jsIntVariables=Cx(i)),n}const Cu=i=>i==="string"?"String":i===void 0?"void":i;function Ah(i){const e=i.params.map(t=>`${Cu(t.type)}${"[]".repeat(t.dims??0)} ${t.name}`).join(", ");return`public static ${Cu(i.returnType)} ${i.name}(${e}) {`}function _o(i,e,t,n,a){const s=Xl(i,t,n);for(const l of e.params)l.dims||(l.type==="int"&&s.jsIntVariables.add(l.name),l.type==="string"&&s.stringVariables.add(l.name));const r=e.params.map(l=>l.name).join(", "),o={out:""};for(const l of i.elements)Xs(l,t,s,a+s.indentPerLevel,o);switch(o.out.trim()===""&&(o.out=D(a+s.indentPerLevel)+(t==="python"?`pass `:` -`)),t){case"java":return`${B(a)}${Ah(e)} -${o.out}${B(a)}} -`;case"python":return`${B(a)}def ${e.name}(${r}): -${o.out}`;case"javascript":return`${B(a)}function ${e.name}(${r}) { -${o.out}${B(a)}} -`}}const B=i=>i>0?" ".repeat(i):"";function ve(i,e){const t=i.exec(e);return t?Array.from(t,n=>n??""):void 0}function K3(i,e){return i==="python"?"# empty element":"// empty element"}const Co=i=>i.trim()==="ø";function Ph(i,e){return B(i)+(e==="python"?`# empty element +`)),t){case"java":return`${D(a)}${Ah(e)} +${o.out}${D(a)}} +`;case"python":return`${D(a)}def ${e.name}(${r}): +${o.out}`;case"javascript":return`${D(a)}function ${e.name}(${r}) { +${o.out}${D(a)}} +`}}const D=i=>i>0?" ".repeat(i):"";function ve(i,e){const t=i.exec(e);return t?Array.from(t,n=>n??""):void 0}function K3(i,e){return i==="python"?"# empty element":"// empty element"}const Co=i=>i.trim()==="ø";function Ph(i,e){return D(i)+(e==="python"?`# empty element `:`// empty element -`)}function ex(i){switch(i.type){case T.leerElement:return!0;case T.anweisung:case T.aufruf:return i.textLines.map(e=>e.trim()).every(e=>e===""||Co(e));default:return!1}}function tx(i){return i.every(ex)}function Kl(i,e,t){const n=i.map(a=>a.replace(/^[ \t]+|[ \t]+$/g,"")).filter(a=>a!=="");return n.length===0?"":e==="python"?B(t)+`""" -`+n.map(a=>B(t)+a+` -`).join("")+B(t)+`""" -`:n.length===1?B(t)+"/* "+n[0]+` */ -`:B(t)+`/* -`+n.map(a=>B(t)+" * "+a+` -`).join("")+B(t)+` */ -`}const nx=i=>i==="java"||i==="javascript";function gs(i){const e=i.trim();if(e==="")return"";if(e.startsWith("//")||e.startsWith("/*")||e.startsWith("*")||e.startsWith("#")||e.startsWith("{")||e.startsWith("}")||e.endsWith("{")||e.endsWith(";"))return e;const t=e.toLowerCase();for(const n of["if ","else","for ","while ","do ","switch ","case ","default"])if(t.startsWith(n))return e;return e+";"}function Ra(i){const e=i.map(t=>t.trim()).filter(t=>t!=="");return ix(e.length===0?"true":e.join(" "))}function ix(i){const e=i.trim();for(const t of["if","while","until","switch"]){const n=Oh(t,e);if(n!==void 0)return n===""?"true":n}return e}function Oh(i,e){if(!e.toLowerCase().startsWith(i))return;const t=e.slice(i.length);if(!(t===""||/^\s/.test(t)||t[0]==="("))return;let n=t.trim();return n.startsWith("(")&&n.endsWith(")")&&n.length>=2&&(n=n.slice(1,-1).trim()),n}function qt(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function ax(i){const e=i.trim(),t=e.toLowerCase();let n;if(t.startsWith("output:"))n=e.slice(7).trim();else if(t.startsWith("print:"))n=e.slice(6).trim();else return;return n===""?void 0:n}const Us=i=>i.name.includes("[")&&i.name.includes("]");function e0(i){const e=i.trim();if(e==="")return;const t=ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)(?:\s+"([^"]*)")?\s*$/i,e);if(t){const s=t[2].replaceAll(" ","");if(s==="")return;const r=(t[3]??"").trim();return{type:ps(t[1]),name:s,customPrompt:r===""?void 0:r}}const n=ve(/^\s*([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)\s+"([^"]*)"\s*$/i,e);if(n){const s=n[1].replaceAll(" ","");return["int","integer","long","float","double","string","boolean","char","bool","void"].includes(s.toLowerCase())?void 0:{type:s.includes("[")?"String":"int",name:s,customPrompt:n[2].trim()}}const a=sx(e);if(a)return{type:ps(a[0]),name:a[1]}}function ps(i){switch(i.trim().toLowerCase()){case"integer":case"int":return"int";case"long":return"long";case"float":return"float";case"double":return"double";case"string":return"String";case"boolean":case"bool":return"boolean";case"char":return"char";default:return i}}function sx(i){const e=i.split(/[ \t]+/).filter(Boolean);if(e.length===0)return;if(e.length>=2)return[e[0],e[1]];if(!["int","double","string","boolean","char","long","float","short","byte","void","bool","integer"].includes(e[0].toLowerCase()))return["int",e[0]]}function rx(i,e,t,n,a){const s=qt(i).trim();if(s.startsWith('"'))switch(e){case"java":return B(t)+"System.out.println("+s+`); -`;case"javascript":return B(t)+"console.log("+s+`); -`;case"python":return B(t)+"print("+Mn(s,n,a)+`) -`}}function _i(i){return i.replaceAll("\\","\\\\").replaceAll('"','\\"').replaceAll(` -`,"\\n").replaceAll("\r","\\r")}function t0(i,e){const t=i.trim();if(!t.toLowerCase().startsWith("input:"))return;const n=t.slice(6).trim();if(n==="")return;const a=e0(n);if(a&&Us(a)&&!/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s/i.test(n)){const s=e.get(a.name.slice(0,a.name.indexOf("[")).trim());if(s)return{...a,type:s}}return a}function ox(i){const e=new Set;return bn(i.elements,t=>{for(const n of t.textLines){const a=n.trim();if(a.toLowerCase().startsWith("input:")){const o=e0(a.slice(6).trim());(o==null?void 0:o.type)==="String"&&!Us(o)&&e.add(o.name);continue}const s=ve(/^\s*(?:const\s+)?string\s+([a-zA-Z_]\w*)\s*=/i,a);s&&e.add(s[1]);const r=ve(/^\s*string\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=/i,a);r&&e.add(r[1]+"[]")}}),e}function lx(i){const e=new Map;return bn(i.elements,t=>{for(const n of t.textLines){const a=ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s*\[\s*\]\s*([a-zA-Z_]\w*)/i,n)??ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*)\s*\[\s*\]/i,n);a&&e.set(a[2],ps(a[1]))}}),e}function ux(i,e,t){const n=t0(i,t);if(!n)return;const a=n.customPrompt?n.customPrompt:n.name+": ",s=B(e)+'System.out.println("'+_i(a)+`"); -`,r=o=>Us(n)?n.name:`${o} ${n.name}`;switch(n.type){case"int":return s+B(e)+`${r("int")} = scanner.nextInt(); -`;case"double":return s+B(e)+`${r("double")} = scanner.nextDouble(); -`;case"String":return s+B(e)+`${r("String")} = scanner.next(); -`;case"boolean":return s+B(e)+`${r("boolean")} = scanner.nextBoolean(); -`;default:return}}function mx(i,e,t){const n=t0(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":B(e)+'console.log("'+_i(n.name+": ")+`"); -`,r=l=>{const u=a?n.customPrompt:n.name+": ";return`(prompt("${_i(u)}") ?? "${l}")`},o=Us(n)?n.name:`let ${n.name}`;switch(n.type){case"int":return s+B(e)+`${o} = parseInt(${r("0")}, 10); -`;case"double":return s+B(e)+`${o} = Number(${r("0")}); -`;case"String":return s+B(e)+`${o} = ${r("")}; -`;case"boolean":return s+B(e)+`${o} = ${r("")}.trim().toLowerCase() === "true"; -`;default:return}}function cx(i,e,t){const n=t0(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":B(e)+'print("'+_i(n.name+": ")+`") -`,r=`input("${_i(a?n.customPrompt:n.name+": ")}")`;switch(n.type){case"int":return s+B(e)+`${n.name} = int(${r}) -`;case"double":return s+B(e)+`${n.name} = float(${r}) -`;case"String":return s+B(e)+`${n.name} = ${r} -`;case"boolean":return s+B(e)+`${n.name} = ${r}.strip().lower() in ("true", "wahr") -`;default:return}}const kr=String.raw`("(?:[^"\\]|\\.)*"|[A-Za-z_]\w*)`,dx=[[new RegExp(String.raw`^new\s+Scanner\s*\(\s*new\s+File\s*\(\s*${kr}\s*\)\s*\)$`),"Scanner"],[new RegExp(String.raw`^new\s+BufferedReader\s*\(\s*new\s+FileReader\s*\(\s*${kr}\s*\)\s*\)$`),"BufferedReader"],[new RegExp(String.raw`^new\s+PrintWriter\s*\(\s*(?:new\s+(?:File|FileWriter)\s*\(\s*)?${kr}\s*\)?\s*\)$`),"PrintWriter"]];function Dh(i){const e=i.trim();for(const[t,n]of dx){const a=t.exec(e);if(a)return{kind:n,name:a[1]}}}function hx(i,e,t,n,a){if(e==="java")return;const s=qt(i).trim(),r=/^(?:(?:Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*(new\s[\s\S]+)$/.exec(s),o=r&&Dh(r[2]);if(r&&o){const m=/^(?:Scanner|BufferedReader|PrintWriter)\s/.test(s);return e==="python"?B(t)+`${r[1]} = ${o.kind}(${o.name}) -`:B(t)+`${m?"let ":""}${r[1]} = new ${o.kind}(${o.name}); -`}const l=/^([A-Za-z_]\w*)\.(println|print)\s*\(([\s\S]*)\)$/.exec(s);if(l&&l[1]!=="System"){const m=l[3].trim(),c=e==="python"&&m!==""?Mn(m,n,a):m;return B(t)+`${l[1]}.${l[2]}(${c})${e==="javascript"?";":""} -`}const u=/^Files\.writeString\s*\(\s*(?:Path\.of|Paths\.get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*,\s*([\s\S]+)\)$/.exec(s);if(u){const m=u[2].trim();return e==="python"?B(t)+`open(${u[1]}, "w", encoding="utf-8").write(${Mn(m,n,a)}) -`:B(t)+`require("fs").writeFileSync(${u[1]}, ${m}); -`}}function gx(i){const e=new Set;for(const t of i)bn(t.elements,n=>{for(const a of n.textLines){const s=/=\s*(new\s.+?);?\s*$/.exec(a),r=s&&Dh(s[1]);r&&e.add(r.kind)}});return e}const px={Scanner:`class Scanner: +`)}function ex(i){switch(i.type){case T.leerElement:return!0;case T.anweisung:case T.aufruf:return i.textLines.map(e=>e.trim()).every(e=>e===""||Co(e));default:return!1}}function tx(i){return i.every(ex)}function Kl(i,e,t){const n=i.map(a=>a.replace(/^[ \t]+|[ \t]+$/g,"")).filter(a=>a!=="");return n.length===0?"":e==="python"?D(t)+`""" +`+n.map(a=>D(t)+a+` +`).join("")+D(t)+`""" +`:n.length===1?D(t)+"/* "+n[0]+` */ +`:D(t)+`/* +`+n.map(a=>D(t)+" * "+a+` +`).join("")+D(t)+` */ +`}const nx=i=>i==="java"||i==="javascript";function gs(i){const e=i.trim();if(e==="")return"";if(e.startsWith("//")||e.startsWith("/*")||e.startsWith("*")||e.startsWith("#")||e.startsWith("{")||e.startsWith("}")||e.endsWith("{")||e.endsWith(";"))return e;const t=e.toLowerCase();for(const n of["if ","else","for ","while ","do ","switch ","case ","default"])if(t.startsWith(n))return e;return e+";"}function Ra(i){const e=i.map(t=>t.trim()).filter(t=>t!=="");return ix(e.length===0?"true":e.join(" "))}function ix(i){const e=i.trim();for(const t of["if","while","until","switch"]){const n=Oh(t,e);if(n!==void 0)return n===""?"true":n}return e}function Oh(i,e){if(!e.toLowerCase().startsWith(i))return;const t=e.slice(i.length);if(!(t===""||/^\s/.test(t)||t[0]==="("))return;let n=t.trim();return n.startsWith("(")&&n.endsWith(")")&&n.length>=2&&(n=n.slice(1,-1).trim()),n}function Qt(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function ax(i){const e=i.trim(),t=e.toLowerCase();let n;if(t.startsWith("output:"))n=e.slice(7).trim();else if(t.startsWith("print:"))n=e.slice(6).trim();else return;return n===""?void 0:n}const Us=i=>i.name.includes("[")&&i.name.includes("]");function e0(i){const e=i.trim();if(e==="")return;const t=ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)(?:\s+"([^"]*)")?\s*$/i,e);if(t){const s=t[2].replaceAll(" ","");if(s==="")return;const r=(t[3]??"").trim();return{type:ps(t[1]),name:s,customPrompt:r===""?void 0:r}}const n=ve(/^\s*([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)\s+"([^"]*)"\s*$/i,e);if(n){const s=n[1].replaceAll(" ","");return["int","integer","long","float","double","string","boolean","char","bool","void"].includes(s.toLowerCase())?void 0:{type:s.includes("[")?"String":"int",name:s,customPrompt:n[2].trim()}}const a=sx(e);if(a)return{type:ps(a[0]),name:a[1]}}function ps(i){switch(i.trim().toLowerCase()){case"integer":case"int":return"int";case"long":return"long";case"float":return"float";case"double":return"double";case"string":return"String";case"boolean":case"bool":return"boolean";case"char":return"char";default:return i}}function sx(i){const e=i.split(/[ \t]+/).filter(Boolean);if(e.length===0)return;if(e.length>=2)return[e[0],e[1]];if(!["int","double","string","boolean","char","long","float","short","byte","void","bool","integer"].includes(e[0].toLowerCase()))return["int",e[0]]}function rx(i,e,t,n,a){const s=Qt(i).trim();if(s.startsWith('"'))switch(e){case"java":return D(t)+"System.out.println("+s+`); +`;case"javascript":return D(t)+"console.log("+s+`); +`;case"python":return D(t)+"print("+Zn(s,n,a)+`) +`}}function ji(i){return i.replaceAll("\\","\\\\").replaceAll('"','\\"').replaceAll(` +`,"\\n").replaceAll("\r","\\r")}function t0(i,e){const t=i.trim();if(!t.toLowerCase().startsWith("input:"))return;const n=t.slice(6).trim();if(n==="")return;const a=e0(n);if(a&&Us(a)&&!/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s/i.test(n)){const s=e.get(a.name.slice(0,a.name.indexOf("[")).trim());if(s)return{...a,type:s}}return a}function ox(i){const e=new Set;return bn(i.elements,t=>{for(const n of t.textLines){const a=n.trim();if(a.toLowerCase().startsWith("input:")){const o=e0(a.slice(6).trim());(o==null?void 0:o.type)==="String"&&!Us(o)&&e.add(o.name);continue}const s=ve(/^\s*(?:const\s+)?string\s+([a-zA-Z_]\w*)\s*=/i,a);s&&e.add(s[1]);const r=ve(/^\s*string\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=/i,a);r&&e.add(r[1]+"[]")}}),e}function lx(i){const e=new Map;return bn(i.elements,t=>{for(const n of t.textLines){const a=ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s*\[\s*\]\s*([a-zA-Z_]\w*)/i,n)??ve(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*)\s*\[\s*\]/i,n);a&&e.set(a[2],ps(a[1]))}}),e}function ux(i,e,t){const n=t0(i,t);if(!n)return;const a=n.customPrompt?n.customPrompt:n.name+": ",s=D(e)+'System.out.println("'+ji(a)+`"); +`,r=o=>Us(n)?n.name:`${o} ${n.name}`;switch(n.type){case"int":return s+D(e)+`${r("int")} = scanner.nextInt(); +`;case"double":return s+D(e)+`${r("double")} = scanner.nextDouble(); +`;case"String":return s+D(e)+`${r("String")} = scanner.next(); +`;case"boolean":return s+D(e)+`${r("boolean")} = scanner.nextBoolean(); +`;default:return}}function mx(i,e,t){const n=t0(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'console.log("'+ji(n.name+": ")+`"); +`,r=l=>{const u=a?n.customPrompt:n.name+": ";return`(prompt("${ji(u)}") ?? "${l}")`},o=Us(n)?n.name:`let ${n.name}`;switch(n.type){case"int":return s+D(e)+`${o} = parseInt(${r("0")}, 10); +`;case"double":return s+D(e)+`${o} = Number(${r("0")}); +`;case"String":return s+D(e)+`${o} = ${r("")}; +`;case"boolean":return s+D(e)+`${o} = ${r("")}.trim().toLowerCase() === "true"; +`;default:return}}function cx(i,e,t){const n=t0(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'print("'+ji(n.name+": ")+`") +`,r=`input("${ji(a?n.customPrompt:n.name+": ")}")`;switch(n.type){case"int":return s+D(e)+`${n.name} = int(${r}) +`;case"double":return s+D(e)+`${n.name} = float(${r}) +`;case"String":return s+D(e)+`${n.name} = ${r} +`;case"boolean":return s+D(e)+`${n.name} = ${r}.strip().lower() in ("true", "wahr") +`;default:return}}const kr=String.raw`("(?:[^"\\]|\\.)*"|[A-Za-z_]\w*)`,dx=[[new RegExp(String.raw`^new\s+Scanner\s*\(\s*new\s+File\s*\(\s*${kr}\s*\)\s*\)$`),"Scanner"],[new RegExp(String.raw`^new\s+BufferedReader\s*\(\s*new\s+FileReader\s*\(\s*${kr}\s*\)\s*\)$`),"BufferedReader"],[new RegExp(String.raw`^new\s+PrintWriter\s*\(\s*(?:new\s+(?:File|FileWriter)\s*\(\s*)?${kr}\s*\)?\s*\)$`),"PrintWriter"]];function Mh(i){const e=i.trim();for(const[t,n]of dx){const a=t.exec(e);if(a)return{kind:n,name:a[1]}}}function hx(i,e,t,n,a){if(e==="java")return;const s=Qt(i).trim(),r=/^(?:(?:Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*(new\s[\s\S]+)$/.exec(s),o=r&&Mh(r[2]);if(r&&o){const m=/^(?:Scanner|BufferedReader|PrintWriter)\s/.test(s);return e==="python"?D(t)+`${r[1]} = ${o.kind}(${o.name}) +`:D(t)+`${m?"let ":""}${r[1]} = new ${o.kind}(${o.name}); +`}const l=/^([A-Za-z_]\w*)\.(println|print)\s*\(([\s\S]*)\)$/.exec(s);if(l&&l[1]!=="System"){const m=l[3].trim(),c=e==="python"&&m!==""?Zn(m,n,a):m;return D(t)+`${l[1]}.${l[2]}(${c})${e==="javascript"?";":""} +`}const u=/^Files\.writeString\s*\(\s*(?:Path\.of|Paths\.get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*,\s*([\s\S]+)\)$/.exec(s);if(u){const m=u[2].trim();return e==="python"?D(t)+`open(${u[1]}, "w", encoding="utf-8").write(${Zn(m,n,a)}) +`:D(t)+`require("fs").writeFileSync(${u[1]}, ${m}); +`}}function gx(i){const e=new Set;for(const t of i)bn(t.elements,n=>{for(const a of n.textLines){const s=/=\s*(new\s.+?);?\s*$/.exec(a),r=s&&Mh(s[1]);r&&e.add(r.kind)}});return e}const px={Scanner:`class Scanner: def __init__(self, name): self.lines = open(name, encoding="utf-8").read().splitlines() def hasNextLine(self): @@ -115,73 +115,73 @@ ${o.out}${B(a)}} } `};function Ao(i,e){const t=gx(i);if(t.size===0)return"";const n=e==="python"?px:fx;return[...t].map(a=>n[a]).join(` `)+` -`}function xx(i,e,t,n,a){const s=/^System\s*\.\s*out\s*\.\s*print\s*\(([\s\S]*)\)$/.exec(qt(i).trim());if(s){const o=s[1].trim();switch(e){case"java":return B(t)+"System.out.print("+o+`); -`;case"javascript":return B(t)+"process.stdout.write(String("+o+`)); -`;case"python":return B(t)+"print("+(o===""?"":Mn(o,n,a)+", ")+`end="") -`}}const r=ax(i);if(r===void 0)return/^\s*(?:output|print):\s*$/i.test(i)?B(t)+{java:"System.out.println();",javascript:"console.log();",python:"print()"}[e]+` -`:void 0;switch(e){case"java":return B(t)+"System.out.println("+r+`); -`;case"javascript":return B(t)+"console.log("+r+`); -`;case"python":return B(t)+"print("+Mn(r,n,a)+`) -`}}function n0(i){const e=i.map(qt).filter(t=>t!=="");return e.length===0?";;":e.join("; ")}function bx(i){const t=n0(i).split(";"),n=Mh(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Mh(i){const e=ve(/^(\s*)(?:integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?\s*$/i,i);if(!e)return;const t=e[2].trim();if(t==="")return;const n=(e[3]??"").trim();return i.includes("=")&&n!==""?e[1]+`let ${t} = ${n}`:e[1]+`let ${t}`}function vx(i){const e=i.map(n=>qt(n).trim()).filter(n=>n!=="");let t=e;if(e.length===1){let n=e[0];const a=Oh("for",n);a!==void 0&&(n=a),t=n.split(";").map(s=>s.trim())}if(!(t.length!==3||t.some(n=>n==="")))return[t[0],t[1],t[2]]}function Bh(i,e){let t=ve(/^\s*(\w+)\s*(\+\+|--)\s*$/,i)??ve(/^\s*(\+\+|--)\s*(\w+)\s*$/,i);if(t){const[n,a]=t[1]==="++"||t[1]==="--"?[t[2],t[1]]:[t[1],t[2]];return n===e?a==="++"?1:-1:void 0}if(t=ve(/^\s*(\w+)\s*(\+|-)=\s*(\d+)\s*$/,i),t)return t[1]===e?(t[2]==="+"?1:-1)*Number(t[3]):void 0;if(t=ve(/^\s*(\w+)\s*=\s*(\w+)\s*(\+|-)\s*(\d+)\s*$/,i),t)return t[1]===e&&t[2]===e?(t[3]==="+"?1:-1)*Number(t[4]):void 0}function Po(i,e){if(/^-?\d+$/.test(i))return String(Number(i)+e);const t=/^[\w.()[\]]+$/.test(i)?i:`(${i})`;return e>0?`${t} + ${e}`:`${t} - ${-e}`}function yx(i,e){const t=vx(i);if(!t)return;const[n,a,s]=t,r=ve(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n);if(!r)return;const o=r[1],l={variable:o,init:`${o} = ${Ze(r[2],e)}`,condition:a,increment:s},u=ve(/^\s*(\w+)\s*(<=|<|>=|>)\s*(.+)$/,a),m=Bh(s,o);if(!u||u[1]!==o||m===void 0||m===0)return l;const c=Ze(r[2],e);let d=Ze(u[3],e);const h=u[2];if(m>0&&h==="<=")d=Po(d,1);else if(m<0&&h===">=")d=Po(d,-1);else if(!(m>0&&h==="<")&&!(m<0&&h===">"))return l;const g=m===1?c==="0"?[d]:[c,d]:[c,d,String(m)];return l.rangeLine=`for ${o} in range(${g.join(", ")}):`,l}function Zh(i){const e=qt(i).trim();if(e==="")return;const t=ve(/^\s*const\s+(integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?$/i,e);if(!t)return;const n=t[2].trim();if(n==="")return;if(!e.includes("="))return{rawType:t[1].trim(),name:n};const a=(t[3]??"").trim();if(a!=="")return{rawType:t[1].trim(),name:n,rhs:a}}function wx(i,e,t,n){var o;const a=Zh(i);if(!a)return;const s=ps(a.rawType),r=(o=a.rhs)==null?void 0:o.trim();switch(e){case"java":return B(t)+gs(r?`final ${s} ${a.name} = ${r}`:`final ${s} ${a.name}`)+` -`;case"javascript":return r?B(t)+gs(`const ${a.name} = ${r}`)+` -`:B(t)+`let ${a.name}; // from diagram: const ${s} ${a.name} -`;case"python":return r?B(t)+`${a.name} = ${Ys(r,n)} # const ${s} -`:B(t)+`${a.name} = None # const ${s}, uninitialized -`}}function zx(i){const e=qt(i).trim();if(e===""||Jh(e))return;const t=ve(/^\s*(?:integer|int|long|float|double|string|boolean|char|bool)(?:\s*\[\s*\]\s+(\w+)|\s+(\w+)(\s*\[\s*\])?)\s*=\s*(.*)$/i,e);if(!t)return;const n=t[1]===""?t[2]:t[1],a=t[4].trim();if(a!=="")return{name:n,rhs:a,isArray:t[1]!==""||t[3]!==""}}function $s(i){const e=ve(/^\s*\(\s*int(?:eger)?\s*\)\s*(.+?)\s*$/i,i),t=e==null?void 0:e[1].trim();if(!(!t||Lh(t)))return t.startsWith("(")&&Oo(t,0)===t.length-1?t.slice(1,-1).trim():t}function Oo(i,e){let t=0;for(let n=e;n/^'.'$/u.test(i)||/\.charAt\(.*\)$/.test(i);function Ix(i,e){if(i[e]==="("){const a=Oo(i,e);return a<0?-1:a+1}if(i[e]==="'")return i[e+2]==="'"?e+3:-1;const t=/^(?:[A-Za-z_]\w*|\d+)/.exec(i.slice(e));if(!t)return-1;let n=e+t[0].length;for(;;){const a=/^\.[A-Za-z_]\w*/.exec(i.slice(n));if(a)n+=a[0].length;else if(i[n]==="("||i[n]==="["){const s=Oo(i,n);if(s<0)return-1;n=s+1}else return n}}function Do(i,e){return i0(i,t=>{const n=/\(\s*(int|char)\s*\)\s*/g;let a="",s=0;for(let r=n.exec(t);r;r=n.exec(t)){const o=r.index+r[0].length,l=Ix(t,o);if(l<0)continue;const u=t.slice(o,l);if(r[1]==="int"&&!Lh(u))continue;const m=Do(u.startsWith("(")?u.slice(1,-1).trim():u,e),c=r[1]==="int"?e==="python"?`ord(${m})`:`${m}.charCodeAt(0)`:e==="python"?`chr(${m})`:`String.fromCharCode(${m})`;a+=t.slice(s,r.index)+c,s=l,n.lastIndex=l}return a+t.slice(s)})}function Ys(i,e=new Set){const t=i.trim();if(t==="null")return"None";const n=$s(t);return n!==void 0?`int(${Ys(n,e)})`:Ze(t,e)}function i0(i,e){let t="",n="",a=0;for(;a/^\d+$/.test(a)||e.has(a);return i0(t,a=>a.replace(/\bMath\.random\s*\(\s*\)/gi,"random.random()").replace(/===/g,"==").replace(/!==/g,"!=").replace(/\s*&&\s*/g," and ").replace(/\s*\|\|\s*/g," or ").replace(/!(?!=)\s*/g,"not ").replace(/\btrue\b/g,"True").replace(/\bfalse\b/g,"False").replace(/\bnull\b/g,"None").replace(new RegExp("(?n(r)&&n(o)?`${r} // ${o}`:s))}function Wh(i){const e=[];let t=0,n="",a=!1;for(let s=0;s/^"(?:[^"\\]|\\.)*"$/.test(i);function Mn(i,e,t){const n=Wh(i),a=s=>a0(s)||t.has(s)||t.has(s.replace(/^([A-Za-z_]\w*)\[[^[\]]*\]$/u,"$1[]"));return n.length<2||!n.some(a)||n.some(s=>s==="")?Ze(i,e):n.map(s=>a(s)?s:`str(${Ze(s,e)})`).join(" + ")}function Eh(i,e,t=new Set){const n=qt(i).trim(),a=ve(/^(\w+(?:\[[^\]]*\])?)\s*(\+\+|--)$/,n)??ve(/^(\+\+|--)\s*(\w+(?:\[[^\]]*\])?)$/,n);if(a){const[o,l]=a[1]==="++"||a[1]==="--"?[a[2],a[1]]:[a[1],a[2]];return`${Ze(o,e)} ${l==="++"?"+=":"-="} 1`}const s=ve(/^(\w+)\s*\/=\s*(.+)$/,n);if(s&&e.has(s[1]))return`${s[1]} //= ${Ze(s[2],e)}`;const r=ve(/^([\w[\]. ]+?)\s*(=|\+=|-=|\*=|\/=|%=)\s*(.+)$/,n);if(r&&!r[3].startsWith("=")){const[,o,l,u]=r;let m;if(l==="+="&&t.has(o.trim())){const c=Wh(u);m=Mn(`"" + ${u}`,e,t).replace(/^"" \+ /,""),c.length===1&&!a0(u.trim())&&!t.has(u.trim())&&(m=`str(${Ze(u,e)})`)}else l==="="&&$s(u)===void 0&&u.trim()!=="null"?m=Mn(u,e,t):m=l==="="?Ys(u,e):Ze(u,e);return`${o} ${l} ${m}`}return Ze(n,e)}const kx=i=>i.replace(/\bMath\.random\b(?!\s*\()/gi,"Math.random()");function Nh(i){const e=i.trim();return e.startsWith("{")&&e.endsWith("}")?"["+e.slice(1,-1)+"]":i}function Fh(i){const e=ve(/^\s*new\s+(?:byte|short|int|long|float|double|boolean|char|string)\s*\[\s*(.+)\s*\]\s*$/i,i),t=e==null?void 0:e[1].trim();return t||void 0}function Jh(i){const e=ve(/^\s*(int|double|string|boolean)\s*\[\s*\]\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,qt(i).trim());return e?{elementType:e[1].toLowerCase(),name:e[2],rhs:e[3].trim()}:void 0}function Sx(i){const e=ve(/^\s*new\s+(?:int|double|string|boolean)\s*\[\s*(.+?)\s*\]\s*\[\s*(.+?)\s*\]\s*$/i,i);return e?[e[1],e[2]]:void 0}const Au=i=>i.replaceAll("{","[").replaceAll("}","]");function Pu(i,e){return i==="boolean"?e==="python"?"False":"false":i==="string"?'""':i==="double"?"0.0":"0"}function Tx(i,e,t){const n=Sx(i.rhs);return e==="javascript"?n?`Array.from({ length: ${n[0]} }, () => new Array(${n[1]}).fill(${Pu(i.elementType,e)}))`:Au(i.rhs):n?`[[${Pu(i.elementType,e)}] * ${Ze(n[1],t)} for _ in range(${Ze(n[0],t)})]`:Ze(Au(i.rhs),t)}function Rh(i,e){const t=i.trim();if(e){const a=Fh(t);return a!==void 0?`new Array(${a})`:Nh(t)}const n=$s(t);return n!==void 0?`Math.floor(${Rh(n,!1)})`:kx(t)}function _x(i,e,t){const n=i.trim();if(e){const a=Fh(n);return a!==void 0?`[None] * ${a}`:Ze(Nh(n),t)}return Ys(n,t)}function jx(i,e,t,n,a){if(e==="java")return;const s=Jh(i);if(s){const u=Tx(s,e,n);return e==="javascript"?B(t)+`let ${s.name} = ${u}; -`:B(t)+`${s.name} = ${u} -`}const r=zx(i);if(!r)return;if(e==="javascript")return B(t)+gs(`let ${r.name} = ${Rh(r.rhs,r.isArray)}`)+` -`;const l=!r.isArray&&$s(r.rhs)===void 0&&r.rhs.trim()!=="null"?Mn(r.rhs,n,a):_x(r.rhs,r.isArray,n);return B(t)+`${r.name} = ${l} -`}function bn(i,e){for(const t of i){e(t),t.loopBody&&bn(t.loopBody,e);for(const n of t.cases??[])bn(n.elements,e)}}function Cx(i){const e=n=>["int","integer","long","short","byte"].includes(n.trim().toLowerCase()),t=new Set;return bn(i.elements,n=>{for(const a of n.textLines){const s=a.trim();if(s==="")continue;if(s.toLowerCase().startsWith("input:")){const l=e0(s.slice(6).trim());l&&e(l.type)&&!l.name.includes("[")&&t.add(l.name);continue}const r=Zh(s);if(r&&e(r.rawType)){t.add(r.name);continue}const o=ve(/^\s*(integer|int|long|short|byte)\s+([a-zA-Z_]\w*)\s*=/i,s);o&&t.add(o[2].trim())}}),t}function Mo(i,e){const t=r=>/^\d+$/.test(r)||e.has(r),n=String.raw`(?:[a-zA-Z_]\w*|\d+(?:\.\d+)?)`,a=new RegExp(String.raw`(?{const o=r.split(/\s*([*/%])\s*/);if(!o.some(m=>m==="/"))return r;let l=o[0],u=t(o[0]);for(let m=1;mr.replace(a,s).replace(new RegExp("(?t(l)&&t(u)?`${l} = Math.trunc(${l} / ${u})`:o))}function fs(i){let e=!1;return bn(i.elements,t=>{t.type===T.anweisung&&t.textLines.some(n=>n.trim().toLowerCase().startsWith("input:"))&&(e=!0)}),e}function s0(i){let e=!1,t=!1,n=!1;return bn(i.elements,a=>{for(const s of a.textLines)/\bFiles\s*\./.test(s)&&(e=!0),/\bnew\s+(?:File|PrintWriter|FileReader|FileWriter|BufferedReader)\s*\(/.test(s)&&(t=!0),/\bnew\s+Scanner\s*\(\s*new\s+File\b/.test(s)&&(n=!0)}),[...t?["import java.io.*;"]:[],...e?["import java.nio.file.*;"]:[],...n?["import java.util.Scanner;"]:[]]}function Ax(i){return s0(i).length>0}function Gh(i){let e=!1;return bn(i.elements,t=>{t.textLines.some(n=>/\bMath\.random\s*\(/i.test(n))&&(e=!0)}),e}function sa(i,e){const t=i.trim();return t===""?e==="python"?'""':"0":e==="java"||new RegExp("^\\p{N}+$","u").test(t)||a0(t)?t:'"'+t.replaceAll('"','\\"')+'"'}function q1(i,e){const t=i.trim();if(t==="")return"";switch(e){case"java":return"/* "+t+" */";case"python":return" # "+t;case"javascript":return" /* "+t+" */"}}function Px(i,e,t,n,a){const s=i.map(r=>r.trim());if(s.every(r=>r==="")){t.live&&(a.out+=B(n)+(e==="python"?"pass":";")+` -`);return}if(t.includeDiagramTextAsComments){const r=s.filter(o=>o!==""&&!Co(o));r.length>0&&(a.out+=Kl(r,e,n))}for(const r of s){if(r==="")continue;if(Co(r)){a.out+=t.live?o0(n,t.live):Ph(n,e);continue}const o=t.jsIntVariables??new Set,l=t.arrayElementTypes??new Map,u=t.stringVariables??new Set,m=(e==="java"?ux(r,n,l):void 0)??(e==="javascript"?mx(r,n,l):void 0)??(e==="python"?cx(r,n,l):void 0)??hx(r,e,n,o,u)??xx(r,e,n,o,u)??wx(r,e,n,o)??jx(r,e,n,o,u)??rx(r,e,n,o,u);if(m!==void 0){a.out+=e==="javascript"?Mo(m,o):m;continue}let c=r;nx(e)?c=gs(e==="javascript"?Mo(r,o):r):e==="python"&&(c=Eh(r,o,u)),c!==""&&(a.out+=B(n)+c+` -`)}}function di(i,e,t,n,a,s,r,o=(l=>(l=a.live)==null?void 0:l.labels.condition)()){if(a.includeDiagramTextAsComments&&(r.out+=Kl(t,n,s)),o!==void 0&&l0(t)){r.out+=B(s)+i+t1(o)+e;return}const u=Ra(t),m=a.jsIntVariables??new Set,c=n==="python"?Ze(u,m):n==="javascript"?Mo(u,m):u;r.out+=B(s)+i+c+e}function v1(i,e,t,n,a){const s=a.out.length;for(const o of i)Xs(o,e,t,n,a);if(t.live&&a.out.length===s&&(a.out+=o0(n,t.live)),e!=="python")return;a.out.slice(s).split(` -`).map(o=>o.trim()).every(o=>o===""||o.startsWith("#"))&&(a.out+=B(n)+`pass -`)}function Ox(i,e){var n;if(e.includeDiagramTextAsComments||i.length!==1)return;const t=i[0];return t.type===T.verzweigung&&(((n=t.cases)==null?void 0:n.length)??0)>=2?t:void 0}function Bo(i,e,t,n,a,s){const r=i.cases;if(!r||r.length<2)return;const o=e==="python",l=n+t.indentPerLevel,u=!t.includeEmptyElseBranch&&tx(r[1].elements),m=u?void 0:Ox(r[1].elements,t);if(o){di(s?"elif ":"if ",`: -`,i.textLines,e,t,n,a),v1(r[0].elements,e,t,l,a),m?Bo(m,e,t,n,a,!0):u||(a.out+=B(n)+`else: +`}function xx(i,e,t,n,a){const s=/^System\s*\.\s*out\s*\.\s*print\s*\(([\s\S]*)\)$/.exec(Qt(i).trim());if(s){const o=s[1].trim();switch(e){case"java":return D(t)+"System.out.print("+o+`); +`;case"javascript":return D(t)+"process.stdout.write(String("+o+`)); +`;case"python":return D(t)+"print("+(o===""?"":Zn(o,n,a)+", ")+`end="") +`}}const r=ax(i);if(r===void 0)return/^\s*(?:output|print):\s*$/i.test(i)?D(t)+{java:"System.out.println();",javascript:"console.log();",python:"print()"}[e]+` +`:void 0;switch(e){case"java":return D(t)+"System.out.println("+r+`); +`;case"javascript":return D(t)+"console.log("+r+`); +`;case"python":return D(t)+"print("+Zn(r,n,a)+`) +`}}function n0(i){const e=i.map(Qt).filter(t=>t!=="");return e.length===0?";;":e.join("; ")}function bx(i){const t=n0(i).split(";"),n=Zh(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Zh(i){const e=ve(/^(\s*)(?:integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?\s*$/i,i);if(!e)return;const t=e[2].trim();if(t==="")return;const n=(e[3]??"").trim();return i.includes("=")&&n!==""?e[1]+`let ${t} = ${n}`:e[1]+`let ${t}`}function vx(i){const e=i.map(n=>Qt(n).trim()).filter(n=>n!=="");let t=e;if(e.length===1){let n=e[0];const a=Oh("for",n);a!==void 0&&(n=a),t=n.split(";").map(s=>s.trim())}if(!(t.length!==3||t.some(n=>n==="")))return[t[0],t[1],t[2]]}function Dh(i,e){let t=ve(/^\s*(\w+)\s*(\+\+|--)\s*$/,i)??ve(/^\s*(\+\+|--)\s*(\w+)\s*$/,i);if(t){const[n,a]=t[1]==="++"||t[1]==="--"?[t[2],t[1]]:[t[1],t[2]];return n===e?a==="++"?1:-1:void 0}if(t=ve(/^\s*(\w+)\s*(\+|-)=\s*(\d+)\s*$/,i),t)return t[1]===e?(t[2]==="+"?1:-1)*Number(t[3]):void 0;if(t=ve(/^\s*(\w+)\s*=\s*(\w+)\s*(\+|-)\s*(\d+)\s*$/,i),t)return t[1]===e&&t[2]===e?(t[3]==="+"?1:-1)*Number(t[4]):void 0}function Po(i,e){if(/^-?\d+$/.test(i))return String(Number(i)+e);const t=/^[\w.()[\]]+$/.test(i)?i:`(${i})`;return e>0?`${t} + ${e}`:`${t} - ${-e}`}function yx(i,e){const t=vx(i);if(!t)return;const[n,a,s]=t,r=ve(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n);if(!r)return;const o=r[1],l={variable:o,init:`${o} = ${Be(r[2],e)}`,condition:a,increment:s},u=ve(/^\s*(\w+)\s*(<=|<|>=|>)\s*(.+)$/,a),m=Dh(s,o);if(!u||u[1]!==o||m===void 0||m===0)return l;const c=Be(r[2],e);let d=Be(u[3],e);const h=u[2];if(m>0&&h==="<=")d=Po(d,1);else if(m<0&&h===">=")d=Po(d,-1);else if(!(m>0&&h==="<")&&!(m<0&&h===">"))return l;const g=m===1?c==="0"?[d]:[c,d]:[c,d,String(m)];return l.rangeLine=`for ${o} in range(${g.join(", ")}):`,l}function Bh(i){const e=Qt(i).trim();if(e==="")return;const t=ve(/^\s*const\s+(integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?$/i,e);if(!t)return;const n=t[2].trim();if(n==="")return;if(!e.includes("="))return{rawType:t[1].trim(),name:n};const a=(t[3]??"").trim();if(a!=="")return{rawType:t[1].trim(),name:n,rhs:a}}function wx(i,e,t,n){var o;const a=Bh(i);if(!a)return;const s=ps(a.rawType),r=(o=a.rhs)==null?void 0:o.trim();switch(e){case"java":return D(t)+gs(r?`final ${s} ${a.name} = ${r}`:`final ${s} ${a.name}`)+` +`;case"javascript":return r?D(t)+gs(`const ${a.name} = ${r}`)+` +`:D(t)+`let ${a.name}; // from diagram: const ${s} ${a.name} +`;case"python":return r?D(t)+`${a.name} = ${$s(r,n)} # const ${s} +`:D(t)+`${a.name} = None # const ${s}, uninitialized +`}}function zx(i){const e=Qt(i).trim();if(e===""||Fh(e))return;const t=ve(/^\s*(?:integer|int|long|float|double|string|boolean|char|bool)(?:\s*\[\s*\]\s+(\w+)|\s+(\w+)(\s*\[\s*\])?)\s*=\s*(.*)$/i,e);if(!t)return;const n=t[1]===""?t[2]:t[1],a=t[4].trim();if(a!=="")return{name:n,rhs:a,isArray:t[1]!==""||t[3]!==""}}function Ys(i){const e=ve(/^\s*\(\s*int(?:eger)?\s*\)\s*(.+?)\s*$/i,i),t=e==null?void 0:e[1].trim();if(!(!t||Lh(t)))return t.startsWith("(")&&Oo(t,0)===t.length-1?t.slice(1,-1).trim():t}function Oo(i,e){let t=0;for(let n=e;n/^'.'$/u.test(i)||/\.charAt\(.*\)$/.test(i);function Ix(i,e){if(i[e]==="("){const a=Oo(i,e);return a<0?-1:a+1}if(i[e]==="'")return i[e+2]==="'"?e+3:-1;const t=/^(?:[A-Za-z_]\w*|\d+)/.exec(i.slice(e));if(!t)return-1;let n=e+t[0].length;for(;;){const a=/^\.[A-Za-z_]\w*/.exec(i.slice(n));if(a)n+=a[0].length;else if(i[n]==="("||i[n]==="["){const s=Oo(i,n);if(s<0)return-1;n=s+1}else return n}}function Mo(i,e){return i0(i,t=>{const n=/\(\s*(int|char)\s*\)\s*/g;let a="",s=0;for(let r=n.exec(t);r;r=n.exec(t)){const o=r.index+r[0].length,l=Ix(t,o);if(l<0)continue;const u=t.slice(o,l);if(r[1]==="int"&&!Lh(u))continue;const m=Mo(u.startsWith("(")?u.slice(1,-1).trim():u,e),c=r[1]==="int"?e==="python"?`ord(${m})`:`${m}.charCodeAt(0)`:e==="python"?`chr(${m})`:`String.fromCharCode(${m})`;a+=t.slice(s,r.index)+c,s=l,n.lastIndex=l}return a+t.slice(s)})}function $s(i,e=new Set){const t=i.trim();if(t==="null")return"None";const n=Ys(t);return n!==void 0?`int(${$s(n,e)})`:Be(t,e)}function i0(i,e){let t="",n="",a=0;for(;a/^\d+$/.test(a)||e.has(a);return i0(t,a=>a.replace(/\bMath\.random\s*\(\s*\)/gi,"random.random()").replace(/===/g,"==").replace(/!==/g,"!=").replace(/\s*&&\s*/g," and ").replace(/\s*\|\|\s*/g," or ").replace(/!(?!=)\s*/g,"not ").replace(/\btrue\b/g,"True").replace(/\bfalse\b/g,"False").replace(/\bnull\b/g,"None").replace(new RegExp("(?n(r)&&n(o)?`${r} // ${o}`:s))}function Wh(i){const e=[];let t=0,n="",a=!1;for(let s=0;s/^"(?:[^"\\]|\\.)*"$/.test(i);function Zn(i,e,t){const n=Wh(i),a=s=>a0(s)||t.has(s)||t.has(s.replace(/^([A-Za-z_]\w*)\[[^[\]]*\]$/u,"$1[]"));return n.length<2||!n.some(a)||n.some(s=>s==="")?Be(i,e):n.map(s=>a(s)?s:`str(${Be(s,e)})`).join(" + ")}function Eh(i,e,t=new Set){const n=Qt(i).trim(),a=ve(/^(\w+(?:\[[^\]]*\])?)\s*(\+\+|--)$/,n)??ve(/^(\+\+|--)\s*(\w+(?:\[[^\]]*\])?)$/,n);if(a){const[o,l]=a[1]==="++"||a[1]==="--"?[a[2],a[1]]:[a[1],a[2]];return`${Be(o,e)} ${l==="++"?"+=":"-="} 1`}const s=ve(/^(\w+)\s*\/=\s*(.+)$/,n);if(s&&e.has(s[1]))return`${s[1]} //= ${Be(s[2],e)}`;const r=ve(/^([\w[\]. ]+?)\s*(=|\+=|-=|\*=|\/=|%=)\s*(.+)$/,n);if(r&&!r[3].startsWith("=")){const[,o,l,u]=r;let m;if(l==="+="&&t.has(o.trim())){const c=Wh(u);m=Zn(`"" + ${u}`,e,t).replace(/^"" \+ /,""),c.length===1&&!a0(u.trim())&&!t.has(u.trim())&&(m=`str(${Be(u,e)})`)}else l==="="&&Ys(u)===void 0&&u.trim()!=="null"?m=Zn(u,e,t):m=l==="="?$s(u,e):Be(u,e);return`${o} ${l} ${m}`}return Be(n,e)}const kx=i=>i.replace(/\bMath\.random\b(?!\s*\()/gi,"Math.random()");function Nh(i){const e=i.trim();return e.startsWith("{")&&e.endsWith("}")?"["+e.slice(1,-1)+"]":i}function Jh(i){const e=ve(/^\s*new\s+(?:byte|short|int|long|float|double|boolean|char|string)\s*\[\s*(.+)\s*\]\s*$/i,i),t=e==null?void 0:e[1].trim();return t||void 0}function Fh(i){const e=ve(/^\s*(int|double|string|boolean)\s*\[\s*\]\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,Qt(i).trim());return e?{elementType:e[1].toLowerCase(),name:e[2],rhs:e[3].trim()}:void 0}function Sx(i){const e=ve(/^\s*new\s+(?:int|double|string|boolean)\s*\[\s*(.+?)\s*\]\s*\[\s*(.+?)\s*\]\s*$/i,i);return e?[e[1],e[2]]:void 0}const Au=i=>i.replaceAll("{","[").replaceAll("}","]");function Pu(i,e){return i==="boolean"?e==="python"?"False":"false":i==="string"?'""':i==="double"?"0.0":"0"}function Tx(i,e,t){const n=Sx(i.rhs);return e==="javascript"?n?`Array.from({ length: ${n[0]} }, () => new Array(${n[1]}).fill(${Pu(i.elementType,e)}))`:Au(i.rhs):n?`[[${Pu(i.elementType,e)}] * ${Be(n[1],t)} for _ in range(${Be(n[0],t)})]`:Be(Au(i.rhs),t)}function Rh(i,e){const t=i.trim();if(e){const a=Jh(t);return a!==void 0?`new Array(${a})`:Nh(t)}const n=Ys(t);return n!==void 0?`Math.floor(${Rh(n,!1)})`:kx(t)}function jx(i,e,t){const n=i.trim();if(e){const a=Jh(n);return a!==void 0?`[None] * ${a}`:Be(Nh(n),t)}return $s(n,t)}function _x(i,e,t,n,a){if(e==="java")return;const s=Fh(i);if(s){const u=Tx(s,e,n);return e==="javascript"?D(t)+`let ${s.name} = ${u}; +`:D(t)+`${s.name} = ${u} +`}const r=zx(i);if(!r)return;if(e==="javascript")return D(t)+gs(`let ${r.name} = ${Rh(r.rhs,r.isArray)}`)+` +`;const l=!r.isArray&&Ys(r.rhs)===void 0&&r.rhs.trim()!=="null"?Zn(r.rhs,n,a):jx(r.rhs,r.isArray,n);return D(t)+`${r.name} = ${l} +`}function bn(i,e){for(const t of i){e(t),t.loopBody&&bn(t.loopBody,e);for(const n of t.cases??[])bn(n.elements,e)}}function Cx(i){const e=n=>["int","integer","long","short","byte"].includes(n.trim().toLowerCase()),t=new Set;return bn(i.elements,n=>{for(const a of n.textLines){const s=a.trim();if(s==="")continue;if(s.toLowerCase().startsWith("input:")){const l=e0(s.slice(6).trim());l&&e(l.type)&&!l.name.includes("[")&&t.add(l.name);continue}const r=Bh(s);if(r&&e(r.rawType)){t.add(r.name);continue}const o=ve(/^\s*(integer|int|long|short|byte)\s+([a-zA-Z_]\w*)\s*=/i,s);o&&t.add(o[2].trim())}}),t}function Zo(i,e){const t=r=>/^\d+$/.test(r)||e.has(r),n=String.raw`(?:[a-zA-Z_]\w*|\d+(?:\.\d+)?)`,a=new RegExp(String.raw`(?{const o=r.split(/\s*([*/%])\s*/);if(!o.some(m=>m==="/"))return r;let l=o[0],u=t(o[0]);for(let m=1;mr.replace(a,s).replace(new RegExp("(?t(l)&&t(u)?`${l} = Math.trunc(${l} / ${u})`:o))}function fs(i){let e=!1;return bn(i.elements,t=>{t.type===T.anweisung&&t.textLines.some(n=>n.trim().toLowerCase().startsWith("input:"))&&(e=!0)}),e}function s0(i){let e=!1,t=!1,n=!1;return bn(i.elements,a=>{for(const s of a.textLines)/\bFiles\s*\./.test(s)&&(e=!0),/\bnew\s+(?:File|PrintWriter|FileReader|FileWriter|BufferedReader)\s*\(/.test(s)&&(t=!0),/\bnew\s+Scanner\s*\(\s*new\s+File\b/.test(s)&&(n=!0)}),[...t?["import java.io.*;"]:[],...e?["import java.nio.file.*;"]:[],...n?["import java.util.Scanner;"]:[]]}function Ax(i){return s0(i).length>0}function Gh(i){let e=!1;return bn(i.elements,t=>{t.textLines.some(n=>/\bMath\.random\s*\(/i.test(n))&&(e=!0)}),e}function sa(i,e){const t=i.trim();return t===""?e==="python"?'""':"0":e==="java"||new RegExp("^\\p{N}+$","u").test(t)||a0(t)?t:'"'+t.replaceAll('"','\\"')+'"'}function Q1(i,e){const t=i.trim();if(t==="")return"";switch(e){case"java":return"/* "+t+" */";case"python":return" # "+t;case"javascript":return" /* "+t+" */"}}function Px(i,e,t,n,a){const s=i.map(r=>r.trim());if(s.every(r=>r==="")){t.live&&(a.out+=D(n)+(e==="python"?"pass":";")+` +`);return}if(t.includeDiagramTextAsComments){const r=s.filter(o=>o!==""&&!Co(o));r.length>0&&(a.out+=Kl(r,e,n))}for(const r of s){if(r==="")continue;if(Co(r)){a.out+=t.live?o0(n,t.live):Ph(n,e);continue}const o=t.jsIntVariables??new Set,l=t.arrayElementTypes??new Map,u=t.stringVariables??new Set,m=(e==="java"?ux(r,n,l):void 0)??(e==="javascript"?mx(r,n,l):void 0)??(e==="python"?cx(r,n,l):void 0)??hx(r,e,n,o,u)??xx(r,e,n,o,u)??wx(r,e,n,o)??_x(r,e,n,o,u)??rx(r,e,n,o,u);if(m!==void 0){a.out+=e==="javascript"?Zo(m,o):m;continue}let c=r;nx(e)?c=gs(e==="javascript"?Zo(r,o):r):e==="python"&&(c=Eh(r,o,u)),c!==""&&(a.out+=D(n)+c+` +`)}}function di(i,e,t,n,a,s,r,o=(l=>(l=a.live)==null?void 0:l.labels.condition)()){if(a.includeDiagramTextAsComments&&(r.out+=Kl(t,n,s)),o!==void 0&&l0(t)){r.out+=D(s)+i+t1(o)+e;return}const u=Ra(t),m=a.jsIntVariables??new Set,c=n==="python"?Be(u,m):n==="javascript"?Zo(u,m):u;r.out+=D(s)+i+c+e}function v1(i,e,t,n,a){const s=a.out.length;for(const o of i)Xs(o,e,t,n,a);if(t.live&&a.out.length===s&&(a.out+=o0(n,t.live)),e!=="python")return;a.out.slice(s).split(` +`).map(o=>o.trim()).every(o=>o===""||o.startsWith("#"))&&(a.out+=D(n)+`pass +`)}function Ox(i,e){var n;if(e.includeDiagramTextAsComments||i.length!==1)return;const t=i[0];return t.type===T.verzweigung&&(((n=t.cases)==null?void 0:n.length)??0)>=2?t:void 0}function Do(i,e,t,n,a,s){const r=i.cases;if(!r||r.length<2)return;const o=e==="python",l=n+t.indentPerLevel,u=!t.includeEmptyElseBranch&&tx(r[1].elements),m=u?void 0:Ox(r[1].elements,t);if(o){di(s?"elif ":"if ",`: +`,i.textLines,e,t,n,a),v1(r[0].elements,e,t,l,a),m?Do(m,e,t,n,a,!0):u||(a.out+=D(n)+`else: `,v1(r[1].elements,e,t,l,a));return}if(di(s?"} else if (":"if (",`) { -`,i.textLines,e,t,n,a),v1(r[0].elements,e,t,l,a),m){const c=a.out.length;Bo(m,e,t,n,a,!0),Vh(t,m,a,c)}else u||(a.out+=B(n)+`} else { -`,v1(r[1].elements,e,t,l,a)),a.out+=B(n)+`} -`}function Xs(i,e,t,n,a){const s=a.out.length;Dx(i,e,t,n,a),Vh(t,i,a,s)}function Dx(i,e,t,n,a){var m;const s=t.indentPerLevel,r=e==="python",o=(c,d)=>v1(c,e,t,d,a),l=(c,d)=>di(c,d,i.textLines,e,t,n,a),u=(c=n)=>{t.includeDiagramTextAsComments&&(a.out+=Kl(i.textLines,e,c))};switch(i.type){case T.leerElement:a.out+=t.live?o0(n,t.live):Ph(n,e);return;case T.anweisung:case T.aufruf:Px(i.textLines,e,t,n,a);return;case T.aussprung:{const c=Ra(i.textLines);i.textLines.some(d=>d.trim()!=="")&&u(),r?a.out+=B(n)+(c===""?`break +`,i.textLines,e,t,n,a),v1(r[0].elements,e,t,l,a),m){const c=a.out.length;Do(m,e,t,n,a,!0),Vh(t,m,a,c)}else u||(a.out+=D(n)+`} else { +`,v1(r[1].elements,e,t,l,a)),a.out+=D(n)+`} +`}function Xs(i,e,t,n,a){const s=a.out.length;Mx(i,e,t,n,a),Vh(t,i,a,s)}function Mx(i,e,t,n,a){var m;const s=t.indentPerLevel,r=e==="python",o=(c,d)=>v1(c,e,t,d,a),l=(c,d)=>di(c,d,i.textLines,e,t,n,a),u=(c=n)=>{t.includeDiagramTextAsComments&&(a.out+=Kl(i.textLines,e,c))};switch(i.type){case T.leerElement:a.out+=t.live?o0(n,t.live):Ph(n,e);return;case T.anweisung:case T.aufruf:Px(i.textLines,e,t,n,a);return;case T.aussprung:{const c=Ra(i.textLines);i.textLines.some(d=>d.trim()!=="")&&u(),r?a.out+=D(n)+(c===""?`break `:`break # ${c} -`):a.out+=B(n)+(c===""?`break; +`):a.out+=D(n)+(c===""?`break; `:`break; // ${c} -`);return}case T.verzweigung:Bo(i,e,t,n,a,!1);return;case T.fallauswahl:{const c=i.cases;if(!c||c.length===0)return;if(r&&t.pythonWithoutMatch){const d=`wahl${n/s+1}`;di(d+" = ",` -`,i.textLines,e,t,n,a),c.forEach((h,g)=>{const f=g===c.length-1;f&&g===0?a.out+=B(n)+"if True:"+q1(h.name,e)+` -`:f?a.out+=B(n)+"else:"+q1(h.name,e)+` -`:a.out+=B(n)+(g===0?"if ":"elif ")+d+" == "+sa(h.name,e)+`: +`);return}case T.verzweigung:Do(i,e,t,n,a,!1);return;case T.fallauswahl:{const c=i.cases;if(!c||c.length===0)return;if(r&&t.pythonWithoutMatch){const d=`wahl${n/s+1}`;di(d+" = ",` +`,i.textLines,e,t,n,a),c.forEach((h,g)=>{const f=g===c.length-1;f&&g===0?a.out+=D(n)+"if True:"+Q1(h.name,e)+` +`:f?a.out+=D(n)+"else:"+Q1(h.name,e)+` +`:a.out+=D(n)+(g===0?"if ":"elif ")+d+" == "+sa(h.name,e)+`: `,o(h.elements,n+s)});return}di(r?"match ":"switch (",r?`: `:`) { -`,i.textLines,e,t,n,a,(m=t.live)==null?void 0:m.labels.selector),c.forEach((d,h)=>{const g=h===c.length-1;if(e==="java"){const f=g?"default -> { "+q1(d.name,e)+` +`,i.textLines,e,t,n,a,(m=t.live)==null?void 0:m.labels.selector),c.forEach((d,h)=>{const g=h===c.length-1;if(e==="java"){const f=g?"default -> { "+Q1(d.name,e)+` `:"case "+sa(d.name,e)+` -> { -`;a.out+=B(n+s)+f,o(d.elements,n+s*2),a.out+=B(n+s)+`} -`}else if(r){const f=g?"case _:"+q1(d.name,e):"case "+sa(d.name,e)+":";a.out+=B(n+s)+f+` -`,o(d.elements,n+s*2)}else{const f=g?"default:"+q1(d.name,e):"case "+sa(d.name,e)+":";a.out+=B(n+s)+f+` -`,o(d.elements,n+s*2),a.out+=B(n+s*2)+`break; -`}}),r||(a.out+=B(n)+`} -`);return}case T.forSchleife:if(e==="java"){u();const c=t.live?Hh(i.textLines,t.live.labels):n0(i.textLines);a.out+=B(n)+"for ("+c+`) { -`}else if(r){const c=t.jsIntVariables??new Set,d=yx(i.textLines,c);if((d==null?void 0:d.rangeLine)!==void 0)u(),a.out+=B(n)+d.rangeLine+` -`;else if(d){u(),a.out+=B(n)+d.init+` -`,a.out+=B(n)+"while "+Ze(d.condition,c)+`: -`;for(const h of i.loopBody??[])Xs(h,e,t,n+s,a);a.out+=B(n+s)+Eh(d.increment,c)+` -`;return}else t.live?a.out+=B(n)+Bx(i.textLines,t.live.labels,c)+` +`;a.out+=D(n+s)+f,o(d.elements,n+s*2),a.out+=D(n+s)+`} +`}else if(r){const f=g?"case _:"+Q1(d.name,e):"case "+sa(d.name,e)+":";a.out+=D(n+s)+f+` +`,o(d.elements,n+s*2)}else{const f=g?"default:"+Q1(d.name,e):"case "+sa(d.name,e)+":";a.out+=D(n+s)+f+` +`,o(d.elements,n+s*2),a.out+=D(n+s*2)+`break; +`}}),r||(a.out+=D(n)+`} +`);return}case T.forSchleife:if(e==="java"){u();const c=t.live?Hh(i.textLines,t.live.labels):n0(i.textLines);a.out+=D(n)+"for ("+c+`) { +`}else if(r){const c=t.jsIntVariables??new Set,d=yx(i.textLines,c);if((d==null?void 0:d.rangeLine)!==void 0)u(),a.out+=D(n)+d.rangeLine+` +`;else if(d){u(),a.out+=D(n)+d.init+` +`,a.out+=D(n)+"while "+Be(d.condition,c)+`: +`;for(const h of i.loopBody??[])Xs(h,e,t,n+s,a);a.out+=D(n+s)+Eh(d.increment,c)+` +`;return}else t.live?a.out+=D(n)+Dx(i.textLines,t.live.labels,c)+` `:l("for ",`: -`)}else{u();const c=t.live?Mx(i.textLines,t.live.labels):bx(i.textLines);a.out+=B(n)+"for ("+c+`) { -`}o(i.loopBody??[],n+s),r||(a.out+=B(n)+`} +`)}else{u();const c=t.live?Zx(i.textLines,t.live.labels):bx(i.textLines);a.out+=D(n)+"for ("+c+`) { +`}o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} `);return;case T.whileSchleife:l(r?"while ":"while (",r?`: `:`) { -`),o(i.loopBody??[],n+s),r||(a.out+=B(n)+`} -`);return;case T.doUntilSchleife:{const c=t.live&&l0(i.textLines)?t1(t.live.labels.condition):Ra(i.textLines);if(r){a.out+=B(n)+`while True: -`;const d=n+s;o(i.loopBody??[],d),u(d);const h=c.includes(Hi)?c:Ze(c,t.jsIntVariables??new Set);a.out+=B(d)+"if not ("+h+`): -`,a.out+=B(d+s)+`break -`}else a.out+=B(n)+`do { -`,o(i.loopBody??[],n+s),u(),a.out+=B(n)+"} while ("+c+`); -`;return}case T.endlosschleife:{const c=Ra(i.textLines),d=c===""||c==="true";d||u(),r?a.out+=B(n)+(d?`while True: +`),o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} +`);return;case T.doUntilSchleife:{const c=t.live&&l0(i.textLines)?t1(t.live.labels.condition):Ra(i.textLines);if(r){a.out+=D(n)+`while True: +`;const d=n+s;o(i.loopBody??[],d),u(d);const h=c.includes(Hi)?c:Be(c,t.jsIntVariables??new Set);a.out+=D(d)+"if not ("+h+`): +`,a.out+=D(d+s)+`break +`}else a.out+=D(n)+`do { +`,o(i.loopBody??[],n+s),u(),a.out+=D(n)+"} while ("+c+`); +`;return}case T.endlosschleife:{const c=Ra(i.textLines),d=c===""||c==="true";d||u(),r?a.out+=D(n)+(d?`while True: `:`while True: # ${c} -`):a.out+=B(n)+(d?`while (true) { +`):a.out+=D(n)+(d?`while (true) { `:`while (true) /* ${c} */ { -`),o(i.loopBody??[],n+s),r||(a.out+=B(n)+`} -`);return}}}const Hi="",r0="",t1=i=>Hi+i+r0,o0=(i,e)=>B(i)+t1(e.target==="python"?`pass # ${e.labels.code}`:`// ${e.labels.code}`)+` -`,l0=i=>i.every(e=>e.trim()==="");function Hh(i,e){return l0(i)||i.length===3?[e.start,e.condition,e.step].map((n,a)=>{const s=qt(i[a]??"");return s===""?t1(n):s}).join("; "):n0(i)}function Mx(i,e){const t=Hh(i,e).split(";"),n=t[0].includes(Hi)?void 0:Mh(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Bx(i,e,t){var h;const[n="",a="",s=""]=i.length===3?i.map(g=>qt(g)):[],r=ve(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n),o=(r==null?void 0:r[1])??((h=ve(/^\s*([a-zA-Z_]\w*)\s*(?:<=|<|>=|>)/,a))==null?void 0:h[1]),l=r?Ze(r[2],t):t1(e.start),u=ve(/^\s*(\w+)\s*(<=|<)\s*(.+)$/,a);let m=t1(e.end);u&&(o===void 0||u[1]===o)&&(m=Ze(u[3],t),u[2]==="<="&&(m=Po(m,1)));const c=o===void 0?void 0:Bh(s,o),d=[l,m,...c!==void 0&&c!==1?[String(c)]:[]];return`for ${o??t1(e.selector)} in range(${d.join(", ")}):`}function Zo(i,e=[],t=new Map){return i.forEach((n,a)=>{var r;const s=[...e,a];t.has(n)||t.set(n,s),n.loopBody&&Zo(n.loopBody,[...s,0],t),(r=n.cases)==null||r.forEach((o,l)=>Zo(o.elements,[...s,l],t))}),t}function Vh(i,e,t,n){const a=i.live,s=a==null?void 0:a.paths.get(e);if(!a||!s||t.out.length===n)return;const r=o=>t.out.slice(0,o).split(` -`).length-1;a.spans.push({path:s,from:r(n),to:r(t.out.length-1)})}function qh(i,e,t){const n={target:e,labels:t,paths:Zo(i.elements),spans:[]},a=Xl(i,e,{includeEmptyElseBranch:!0,live:n}),s=It(i.caption);let r="";if(e==="java"){const u=s0(i);for(const m of u)r+=m+` +`),o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} +`);return}}}const Hi="",r0="",t1=i=>Hi+i+r0,o0=(i,e)=>D(i)+t1(e.target==="python"?`pass # ${e.labels.code}`:`// ${e.labels.code}`)+` +`,l0=i=>i.every(e=>e.trim()==="");function Hh(i,e){return l0(i)||i.length===3?[e.start,e.condition,e.step].map((n,a)=>{const s=Qt(i[a]??"");return s===""?t1(n):s}).join("; "):n0(i)}function Zx(i,e){const t=Hh(i,e).split(";"),n=t[0].includes(Hi)?void 0:Zh(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Dx(i,e,t){var h;const[n="",a="",s=""]=i.length===3?i.map(g=>Qt(g)):[],r=ve(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n),o=(r==null?void 0:r[1])??((h=ve(/^\s*([a-zA-Z_]\w*)\s*(?:<=|<|>=|>)/,a))==null?void 0:h[1]),l=r?Be(r[2],t):t1(e.start),u=ve(/^\s*(\w+)\s*(<=|<)\s*(.+)$/,a);let m=t1(e.end);u&&(o===void 0||u[1]===o)&&(m=Be(u[3],t),u[2]==="<="&&(m=Po(m,1)));const c=o===void 0?void 0:Dh(s,o),d=[l,m,...c!==void 0&&c!==1?[String(c)]:[]];return`for ${o??t1(e.selector)} in range(${d.join(", ")}):`}function Bo(i,e=[],t=new Map){return i.forEach((n,a)=>{var r;const s=[...e,a];t.has(n)||t.set(n,s),n.loopBody&&Bo(n.loopBody,[...s,0],t),(r=n.cases)==null||r.forEach((o,l)=>Bo(o.elements,[...s,l],t))}),t}function Vh(i,e,t,n){const a=i.live,s=a==null?void 0:a.paths.get(e);if(!a||!s||t.out.length===n)return;const r=o=>t.out.slice(0,o).split(` +`).length-1;a.spans.push({path:s,from:r(n),to:r(t.out.length-1)})}function Qh(i,e,t){const n={target:e,labels:t,paths:Bo(i.elements),spans:[]},a=Xl(i,e,{includeEmptyElseBranch:!0,live:n}),s=It(i.caption);let r="";if(e==="java"){const u=s0(i);for(const m of u)r+=m+` `;fs(i)?(u.includes("import java.util.Scanner;")||(r+=`import java.util.Scanner; `),r+=`Scanner scanner = new Scanner(System.in); @@ -195,24 +195,24 @@ ${o.out}${B(a)}} `),r+=Ao([i],"python"),s&&(r+=`def ${s.name}(${u}): `))}const o={out:""};v1(i.elements,e,a,s?a.indentPerLevel:0,o),s&&e!=="python"&&(o.out+=`} `);const l=r.split(` -`).length-1;return{text:Qh((r+o.out).replace(/\n+$/,""),e),spans:n.spans.map(u=>({...u,from:u.from+l,to:u.to+l}))}}function Qh(i,e){switch(e){case"javascript":return Wx(Do(i,"javascript")).replace(/\.length\(\)/g,".length").replace(/\.contains\(/g,".includes(");case"python":return Zx(Do(i,"python")).replace(/\b([a-zA-Z_]\w*(?:\[[^[\]]*\])?)\.length(?:\(\)|\b)/g,"len($1)");case"java":return Fx(i)}}function Zx(i){for(let e=0;e<5;e++){const t=Uh(Lx(i),"python");if(t===i)break;i=t}return i}const Ou={indexOf:"find",lastIndexOf:"rfind",toUpperCase:"upper",toLowerCase:"lower",trim:"strip",startsWith:"startswith",endsWith:"endswith"};function Lx(i){return u0(i,["charAt","substring","contains","isEmpty","equalsIgnoreCase","compareTo","repeat","concat",...Object.keys(Ou)],(e,t,n)=>{switch(t){case"charAt":return`${e}[${n}]`;case"substring":{const a=Ex(n);return a.length===2?`${e}[${a[0].trim()}:${a[1].trim()}]`:`${e}[${n.trim()}:]`}case"contains":return`(${n.trim()} in ${e})`;case"isEmpty":return`(len(${e}) == 0)`;case"equalsIgnoreCase":return`(${e}.lower() == ${n.trim()}.lower())`;case"compareTo":return`((${e} > ${n.trim()}) - (${e} < ${n.trim()}))`;case"repeat":return`(${e} * ${n.trim()})`;case"concat":return`(${e} + ${n.trim()})`;default:return`${e}.${Ou[t]}(${n})`}})}function Wx(i){for(let e=0;e<5;e++){const t=Uh(u0(i,["isEmpty","equalsIgnoreCase","compareTo","replace"],(n,a,s)=>{switch(a){case"isEmpty":return`(${n}.length === 0)`;case"equalsIgnoreCase":return`(${n}.toLowerCase() === ${s.trim()}.toLowerCase())`;case"compareTo":return`${n}.localeCompare(${s.trim()})`;default:return`${n}.replaceAll(${s})`}}),"javascript");if(t===i)break;i=t}return i}function Uh(i,e){const t=/\bFiles\.readString\(\s*(?:Path\.of|Paths\.get)\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*\)/g;return e==="python"?i.replace(t,'open($1, encoding="utf-8").read()').replace(/\bInteger\.parseInt\(/g,"int(").replace(/\bDouble\.parseDouble\(/g,"float(").replace(/\bString\.valueOf\(/g,"str("):i.replace(t,'require("fs").readFileSync($1, "utf8")').replace(/\bInteger\.parseInt\(/g,"parseInt(").replace(/\bDouble\.parseDouble\(/g,"parseFloat(").replace(/\bString\.valueOf\(/g,"String(")}function Ex(i){let e=0;const t=[...i].findIndex(n=>n==="("?(e+=1,!1):n===")"?(e-=1,!1):n===","&&e===0);return t<0?[i]:[i.slice(0,t),i.slice(t+1)]}function u0(i,e,t){const n=new RegExp(`([A-Za-z_]\\w*(?:\\[[^[\\]]*\\]|\\.\\w+\\(\\))*|"(?:[^"\\\\]|\\\\.)*")\\.(${e.join("|")})\\(`,"g");let a="",s=0;for(let r=n.exec(i);r;r=n.exec(i)){const o=r.index+r[0].length-1;let l=0,u=-1;for(let c=o;ce.has(n.toLowerCase())?t:`${n}.length()`)}const Jx=new Set("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false null var record sealed permits yield module open opens requires exports to uses provides with transitive".split(" "));function Ks(i){const e=i.trim();if(e==="")return"Main";let t="";return Array.from(e).forEach((n,a)=>{a===0?new RegExp("\\p{L}","u").test(n)||n==="_"||n==="$"?t+=n:new RegExp("\\p{Nd}","u").test(n)?t+="_"+n:t+="_":/[\p{L}\p{M}\p{N}]/u.test(n)||n==="_"||n==="$"?t+=n:t+="_"}),t=t.replace(/_{2,}/g,"_").replace(/^_+|_+$/g,""),t===""?"Main":(new RegExp("^\\p{Nd}","u").test(t)&&(t="_"+t),Jx.has(t.toLowerCase())&&(t="_"+t),t)}function Du(i,e,t={},n=[]){const a={...Ch,...t},s=Ks(e),r=[i,...n].filter((z,I,k)=>k.indexOf(z)===I).map(z=>({d:z,header:It(z.caption)})).filter(z=>z.header!==void 0),o=r.map(z=>jo(z.d,z.header,"java",t,a.indentPerLevel)),l=It(i.caption),u=r.some(z=>fs(z.d)),m=hs(i,"java",a),c=a.indentPerLevel*2,d=fs(i),h=d?Rx(m):m,g=B(c),f=h.trim()===""?"":h.split(` +`).length-1;return{text:qh((r+o.out).replace(/\n+$/,""),e),spans:n.spans.map(u=>({...u,from:u.from+l,to:u.to+l}))}}function qh(i,e){switch(e){case"javascript":return Wx(Mo(i,"javascript")).replace(/\.length\(\)/g,".length").replace(/\.contains\(/g,".includes(");case"python":return Bx(Mo(i,"python")).replace(/\b([a-zA-Z_]\w*(?:\[[^[\]]*\])?)\.length(?:\(\)|\b)/g,"len($1)");case"java":return Jx(i)}}function Bx(i){for(let e=0;e<5;e++){const t=Uh(Lx(i),"python");if(t===i)break;i=t}return i}const Ou={indexOf:"find",lastIndexOf:"rfind",toUpperCase:"upper",toLowerCase:"lower",trim:"strip",startsWith:"startswith",endsWith:"endswith"};function Lx(i){return u0(i,["charAt","substring","contains","isEmpty","equalsIgnoreCase","compareTo","repeat","concat",...Object.keys(Ou)],(e,t,n)=>{switch(t){case"charAt":return`${e}[${n}]`;case"substring":{const a=Ex(n);return a.length===2?`${e}[${a[0].trim()}:${a[1].trim()}]`:`${e}[${n.trim()}:]`}case"contains":return`(${n.trim()} in ${e})`;case"isEmpty":return`(len(${e}) == 0)`;case"equalsIgnoreCase":return`(${e}.lower() == ${n.trim()}.lower())`;case"compareTo":return`((${e} > ${n.trim()}) - (${e} < ${n.trim()}))`;case"repeat":return`(${e} * ${n.trim()})`;case"concat":return`(${e} + ${n.trim()})`;default:return`${e}.${Ou[t]}(${n})`}})}function Wx(i){for(let e=0;e<5;e++){const t=Uh(u0(i,["isEmpty","equalsIgnoreCase","compareTo","replace"],(n,a,s)=>{switch(a){case"isEmpty":return`(${n}.length === 0)`;case"equalsIgnoreCase":return`(${n}.toLowerCase() === ${s.trim()}.toLowerCase())`;case"compareTo":return`${n}.localeCompare(${s.trim()})`;default:return`${n}.replaceAll(${s})`}}),"javascript");if(t===i)break;i=t}return i}function Uh(i,e){const t=/\bFiles\.readString\(\s*(?:Path\.of|Paths\.get)\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*\)/g;return e==="python"?i.replace(t,'open($1, encoding="utf-8").read()').replace(/\bInteger\.parseInt\(/g,"int(").replace(/\bDouble\.parseDouble\(/g,"float(").replace(/\bString\.valueOf\(/g,"str("):i.replace(t,'require("fs").readFileSync($1, "utf8")').replace(/\bInteger\.parseInt\(/g,"parseInt(").replace(/\bDouble\.parseDouble\(/g,"parseFloat(").replace(/\bString\.valueOf\(/g,"String(")}function Ex(i){let e=0;const t=[...i].findIndex(n=>n==="("?(e+=1,!1):n===")"?(e-=1,!1):n===","&&e===0);return t<0?[i]:[i.slice(0,t),i.slice(t+1)]}function u0(i,e,t){const n=new RegExp(`([A-Za-z_]\\w*(?:\\[[^[\\]]*\\]|\\.\\w+\\(\\))*|"(?:[^"\\\\]|\\\\.)*")\\.(${e.join("|")})\\(`,"g");let a="",s=0;for(let r=n.exec(i);r;r=n.exec(i)){const o=r.index+r[0].length-1;let l=0,u=-1;for(let c=o;ce.has(n.toLowerCase())?t:`${n}.length()`)}const Fx=new Set("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false null var record sealed permits yield module open opens requires exports to uses provides with transitive".split(" "));function Ks(i){const e=i.trim();if(e==="")return"Main";let t="";return Array.from(e).forEach((n,a)=>{a===0?new RegExp("\\p{L}","u").test(n)||n==="_"||n==="$"?t+=n:new RegExp("\\p{Nd}","u").test(n)?t+="_"+n:t+="_":/[\p{L}\p{M}\p{N}]/u.test(n)||n==="_"||n==="$"?t+=n:t+="_"}),t=t.replace(/_{2,}/g,"_").replace(/^_+|_+$/g,""),t===""?"Main":(new RegExp("^\\p{Nd}","u").test(t)&&(t="_"+t),Fx.has(t.toLowerCase())&&(t="_"+t),t)}function Mu(i,e,t={},n=[]){const a={...Ch,...t},s=Ks(e),r=[i,...n].filter((z,I,k)=>k.indexOf(z)===I).map(z=>({d:z,header:It(z.caption)})).filter(z=>z.header!==void 0),o=r.map(z=>_o(z.d,z.header,"java",t,a.indentPerLevel)),l=It(i.caption),u=r.some(z=>fs(z.d)),m=hs(i,"java",a),c=a.indentPerLevel*2,d=fs(i),h=d?Rx(m):m,g=D(c),f=h.trim()===""?"":h.split(` `).map(z=>z.trim()===""?g:g+z).join(` `);let x="";const b=o.length>0&&(d||u),v=[...new Set([i,...r.map(z=>z.d)].flatMap(s0))],w=v.length>0;(d||u)&&!v.includes("import java.util.Scanner;")&&v.push("import java.util.Scanner;");for(const z of v)x+=z+` `;v.length&&(x+=` `),x+=`public class ${s} { -`,b&&(x+=B(a.indentPerLevel)+`static Scanner scanner = new Scanner(System.in); +`,b&&(x+=D(a.indentPerLevel)+`static Scanner scanner = new Scanner(System.in); -`),l||(x+=B(a.indentPerLevel)+`public static void main(String[] args)${w?" throws Exception":""} { -`,d&&!b&&(x+=B(c)+`Scanner scanner = new Scanner(System.in); +`),l||(x+=D(a.indentPerLevel)+`public static void main(String[] args)${w?" throws Exception":""} { +`,d&&!b&&(x+=D(c)+`Scanner scanner = new Scanner(System.in); `,f!==""&&(x+=` `)),x+=f,f!==""&&!f.endsWith(` `)&&(x+=` -`),x+=B(a.indentPerLevel)+`} +`),x+=D(a.indentPerLevel)+`} `);for(const[z,I]of o.entries())x+=(z>0||!l?` `:"")+I;return x+=`} `,x}function Rx(i){const e=i.split(` `);let t=0;for(e[t]==="// import java.util.Scanner;"&&t++;t=e.length?"":e.slice(t).join(` -`)}const yn={target:"visustruct.codegen.target",javaMode:"visustruct.codegen.javaOutputMode",comments:"visustruct.codegen.includeDiagramComments",emptyElse:"visustruct.codegen.includeEmptyElse"};function ra(i){try{return localStorage.getItem(i)}catch{return null}}function oa(i,e){try{localStorage.setItem(i,e)}catch{}}const Gx=()=>p("web_run_stopped_loop"),$h=()=>p("web_run_cancelled"),Ne=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Hx(i){let e=0;return i.replace(/^(\s*)while\s*\(\s*true\s*\)(?:\s*\/\*.*?\*\/)?\s*\{/gm,(t,n)=>{const a=`__visuStructLoopGuard${e++}`;return`${n}for (let ${a} = 0; ${a} < 100000 || (() => { throw new Error(${JSON.stringify(Gx())}); })(); ${a}++) {`})}function Vx(i){return Hx(i).replace(/\bprompt\s*\(/g,"await __visuStructPrompt(")}const qx=` +`)}const yn={target:"visustruct.codegen.target",javaMode:"visustruct.codegen.javaOutputMode",comments:"visustruct.codegen.includeDiagramComments",emptyElse:"visustruct.codegen.includeEmptyElse"};function ra(i){try{return localStorage.getItem(i)}catch{return null}}function oa(i,e){try{localStorage.setItem(i,e)}catch{}}const Gx=()=>p("web_run_stopped_loop"),Yh=()=>p("web_run_cancelled"),Ne=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Hx(i){let e=0;return i.replace(/^(\s*)while\s*\(\s*true\s*\)(?:\s*\/\*.*?\*\/)?\s*\{/gm,(t,n)=>{const a=`__visuStructLoopGuard${e++}`;return`${n}for (let ${a} = 0; ${a} < 100000 || (() => { throw new Error(${JSON.stringify(Gx())}); })(); ${a}++) {`})}function Vx(i){return Hx(i).replace(/\bprompt\s*\(/g,"await __visuStructPrompt(")}const Qx=` let answer let lines = [] // Text von \`process.stdout.write\` ohne neue Zeile (wie \`System.out.print\`). @@ -244,7 +244,7 @@ const process = { stdout: { write: (text) => { } } } setInterval(flush, 50) const __visuStructPrompt = (label) => new Promise((resolve, reject) => { - answer = (value) => (value === null ? reject(new Error(${JSON.stringify($h())})) : resolve(value)) + answer = (value) => (value === null ? reject(new Error(${JSON.stringify(Yh())})) : resolve(value)) send('prompt', String(label ?? '')) }) onmessage = async (e) => { @@ -257,7 +257,7 @@ onmessage = async (e) => { send('error', String(err)) } } -`,Sr=2e3;class Qx{constructor(e,t,n,a,s=()=>[]){y(this,"element");y(this,"target");y(this,"javaMode");y(this,"comments");y(this,"emptyElse");y(this,"code","");y(this,"codeView");y(this,"javaModeRow");y(this,"runButton");y(this,"saveButton");y(this,"copyButton");y(this,"runner");y(this,"runOutput");y(this,"runInput");y(this,"pseudocodeBox");y(this,"pseudocodeHint");y(this,"worker");y(this,"outputLines",[]);y(this,"droppedLines",0);y(this,"outputFrame");y(this,"pendingAnswer");this.currentDocument=e,this.saveFile=t,this.onClose=n,this.setPseudocode=a,this.subprograms=s;const r=ra(yn.target);this.target=r==="python"||r==="javascript"?r:"java",this.javaMode=ra(yn.javaMode)==="class"?"class":"snippet",this.comments=ra(yn.comments)==="true",this.emptyElse=ra(yn.emptyElse)!=="false",this.element=document.createElement("aside"),this.element.className="codepanel",this.build()}refresh(){const e=this.currentDocument(),t=this.options();this.code=this.target==="java"&&this.javaMode==="class"?Du(e,this.classStem(),t,this.subprograms()):hs(e,this.target,t,this.subprograms()),this.codeView.textContent=this.code,this.javaModeRow.hidden=this.target!=="java",this.saveButton.hidden=this.target!=="java",this.runButton.hidden=this.target!=="javascript"||!!e.pseudocode,this.runButton.hidden&&this.stopRun(!0),this.pseudocodeBox.checked=!!e.pseudocode,this.pseudocodeHint.hidden=!e.pseudocode;for(const n of this.element.querySelectorAll("[data-target]"))n.setAttribute("aria-pressed",String(n.dataset.target===this.target));for(const n of this.element.querySelectorAll("[data-java-mode]"))n.setAttribute("aria-pressed",String(n.dataset.javaMode===this.javaMode))}close(){this.stopRun(!0)}options(){return{includeDiagramTextAsComments:this.comments,includeEmptyElseBranch:this.emptyElse,pseudocodeNote:p("codegen_pseudocode_note")}}classStem(){return ds(this.currentDocument().caption)||"Main"}build(){this.element.innerHTML=` +`,Sr=2e3;class qx{constructor(e,t,n,a,s=()=>[]){y(this,"element");y(this,"target");y(this,"javaMode");y(this,"comments");y(this,"emptyElse");y(this,"code","");y(this,"codeView");y(this,"javaModeRow");y(this,"runButton");y(this,"saveButton");y(this,"copyButton");y(this,"runner");y(this,"runOutput");y(this,"runInput");y(this,"pseudocodeBox");y(this,"pseudocodeHint");y(this,"worker");y(this,"outputLines",[]);y(this,"droppedLines",0);y(this,"outputFrame");y(this,"pendingAnswer");this.currentDocument=e,this.saveFile=t,this.onClose=n,this.setPseudocode=a,this.subprograms=s;const r=ra(yn.target);this.target=r==="python"||r==="javascript"?r:"java",this.javaMode=ra(yn.javaMode)==="class"?"class":"snippet",this.comments=ra(yn.comments)==="true",this.emptyElse=ra(yn.emptyElse)!=="false",this.element=document.createElement("aside"),this.element.className="codepanel",this.build()}refresh(){const e=this.currentDocument(),t=this.options();this.code=this.target==="java"&&this.javaMode==="class"?Mu(e,this.classStem(),t,this.subprograms()):hs(e,this.target,t,this.subprograms()),this.codeView.textContent=this.code,this.javaModeRow.hidden=this.target!=="java",this.saveButton.hidden=this.target!=="java",this.runButton.hidden=this.target!=="javascript"||!!e.pseudocode,this.runButton.hidden&&this.stopRun(!0),this.pseudocodeBox.checked=!!e.pseudocode,this.pseudocodeHint.hidden=!e.pseudocode;for(const n of this.element.querySelectorAll("[data-target]"))n.setAttribute("aria-pressed",String(n.dataset.target===this.target));for(const n of this.element.querySelectorAll("[data-java-mode]"))n.setAttribute("aria-pressed",String(n.dataset.javaMode===this.javaMode))}close(){this.stopRun(!0)}options(){return{includeDiagramTextAsComments:this.comments,includeEmptyElseBranch:this.emptyElse,pseudocodeNote:p("codegen_pseudocode_note")}}classStem(){return ds(this.currentDocument().caption)||"Main"}build(){this.element.innerHTML=`

${Ne(p("codegen_placeholder_title"))}

@@ -287,12 +287,12 @@ onmessage = async (e) => {

${Ne(p("codegen_generated_hint"))}

- `;const e=a=>this.element.querySelector(a);this.codeView=e(".code-view"),this.javaModeRow=e(".java-mode"),this.runButton=e("[data-act=run]"),this.saveButton=e("[data-act=save]"),this.copyButton=e("[data-act=copy]"),this.runner=e(".runner"),this.runOutput=e(".runner-out"),this.runInput=e(".runner-input"),this.pseudocodeBox=e("[data-opt=pseudocode]"),this.pseudocodeHint=e(".pseudocode-hint"),this.pseudocodeBox.addEventListener("change",()=>this.setPseudocode(this.pseudocodeBox.checked)),e(".code-close").addEventListener("click",()=>this.onClose());for(const a of this.element.querySelectorAll("[data-target]"))a.addEventListener("click",()=>{this.target=a.dataset.target,oa(yn.target,this.target),this.refresh()});for(const a of this.element.querySelectorAll("[data-java-mode]"))a.addEventListener("click",()=>{this.javaMode=a.dataset.javaMode,oa(yn.javaMode,this.javaMode),this.refresh()});const t=e("[data-opt=comments]");t.checked=this.comments,t.addEventListener("change",()=>{this.comments=t.checked,oa(yn.comments,String(this.comments)),this.refresh()});const n=e("[data-opt=emptyElse]");n.checked=this.emptyElse,n.addEventListener("change",()=>{this.emptyElse=n.checked,oa(yn.emptyElse,String(this.emptyElse)),this.refresh()}),this.copyButton.addEventListener("click",()=>this.copy()),this.saveButton.addEventListener("click",()=>{const a=Ks(this.classStem()),s=Du(this.currentDocument(),this.classStem(),this.options());this.saveFile(`${a}.java`,s)}),this.runButton.addEventListener("click",()=>this.run()),e("[data-act=stop]").addEventListener("click",()=>this.stopRun(!1)),e("[data-act=cancel]").addEventListener("click",()=>this.answer(null)),this.runInput.addEventListener("submit",a=>{a.preventDefault(),this.answer(this.runInput.querySelector("input").value)})}async copy(){var t;let e=!1;try{await navigator.clipboard.writeText(this.code),e=!0}catch{const n=document.createRange();n.selectNodeContents(this.codeView);const a=getSelection();a==null||a.removeAllRanges(),a==null||a.addRange(n),e=((t=document.execCommand)==null?void 0:t.call(document,"copy"))??!1}this.copyButton.textContent=p(e?"web_copied_check":"web_copy_manual"),setTimeout(()=>this.copyButton.textContent=p("codegen_copy"),2e3)}run(){this.stopRun(!0),this.runner.hidden=!1,this.runOutput.textContent="",this.outputLines=[],this.droppedLines=0,this.runOutput.classList.remove("error");const e=Vx(this.code),t=n=>this.onRunnerMessage(n);try{const n=URL.createObjectURL(new Blob([qx],{type:"text/javascript"})),a=new Worker(n);URL.revokeObjectURL(n),a.onmessage=s=>t(s.data),a.onerror=s=>{s.preventDefault(),t({type:"error",text:s.message||p("web_run_error")})},a.postMessage({type:"run",code:e}),this.worker=a}catch{this.runInPage(e,t)}this.setRunning(!0)}runInPage(e,t){const n={log:(...r)=>t({type:"log",lines:[r.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(" ")]})},a=r=>new Promise((o,l)=>{this.pendingAnswer=u=>u===null?l(new Error($h())):o(u),t({type:"prompt",text:r})}),s=(async()=>{}).constructor;new s("__visuStructPrompt","console",e)(a,n).then(()=>t({type:"done"})).catch(r=>t({type:"error",text:String(r)}))}onRunnerMessage(e){switch(e.type){case"log":this.appendOutput(e.lines??[]);break;case"prompt":{this.runInput.hidden=!1,this.runInput.querySelector("label").textContent=e.text??"";const t=this.runInput.querySelector("input");t.value="",t.focus();break}case"error":this.appendOutput([e.text??""]),this.runOutput.classList.add("error"),this.stopRun(!1);break;case"done":this.stopRun(!1);break}}appendOutput(e){this.outputLines.push(...e),this.outputLines.length>Sr&&(this.droppedLines+=this.outputLines.length-Sr,this.outputLines.splice(0,this.outputLines.length-Sr)),this.outputFrame===void 0&&(this.outputFrame=requestAnimationFrame(()=>{this.outputFrame=void 0;const t=this.droppedLines>0?p("web_run_dropped_fmt",this.droppedLines)+` + `;const e=a=>this.element.querySelector(a);this.codeView=e(".code-view"),this.javaModeRow=e(".java-mode"),this.runButton=e("[data-act=run]"),this.saveButton=e("[data-act=save]"),this.copyButton=e("[data-act=copy]"),this.runner=e(".runner"),this.runOutput=e(".runner-out"),this.runInput=e(".runner-input"),this.pseudocodeBox=e("[data-opt=pseudocode]"),this.pseudocodeHint=e(".pseudocode-hint"),this.pseudocodeBox.addEventListener("change",()=>this.setPseudocode(this.pseudocodeBox.checked)),e(".code-close").addEventListener("click",()=>this.onClose());for(const a of this.element.querySelectorAll("[data-target]"))a.addEventListener("click",()=>{this.target=a.dataset.target,oa(yn.target,this.target),this.refresh()});for(const a of this.element.querySelectorAll("[data-java-mode]"))a.addEventListener("click",()=>{this.javaMode=a.dataset.javaMode,oa(yn.javaMode,this.javaMode),this.refresh()});const t=e("[data-opt=comments]");t.checked=this.comments,t.addEventListener("change",()=>{this.comments=t.checked,oa(yn.comments,String(this.comments)),this.refresh()});const n=e("[data-opt=emptyElse]");n.checked=this.emptyElse,n.addEventListener("change",()=>{this.emptyElse=n.checked,oa(yn.emptyElse,String(this.emptyElse)),this.refresh()}),this.copyButton.addEventListener("click",()=>this.copy()),this.saveButton.addEventListener("click",()=>{const a=Ks(this.classStem()),s=Mu(this.currentDocument(),this.classStem(),this.options());this.saveFile(`${a}.java`,s)}),this.runButton.addEventListener("click",()=>this.run()),e("[data-act=stop]").addEventListener("click",()=>this.stopRun(!1)),e("[data-act=cancel]").addEventListener("click",()=>this.answer(null)),this.runInput.addEventListener("submit",a=>{a.preventDefault(),this.answer(this.runInput.querySelector("input").value)})}async copy(){var t;let e=!1;try{await navigator.clipboard.writeText(this.code),e=!0}catch{const n=document.createRange();n.selectNodeContents(this.codeView);const a=getSelection();a==null||a.removeAllRanges(),a==null||a.addRange(n),e=((t=document.execCommand)==null?void 0:t.call(document,"copy"))??!1}this.copyButton.textContent=p(e?"web_copied_check":"web_copy_manual"),setTimeout(()=>this.copyButton.textContent=p("codegen_copy"),2e3)}run(){this.stopRun(!0),this.runner.hidden=!1,this.runOutput.textContent="",this.outputLines=[],this.droppedLines=0,this.runOutput.classList.remove("error");const e=Vx(this.code),t=n=>this.onRunnerMessage(n);try{const n=URL.createObjectURL(new Blob([Qx],{type:"text/javascript"})),a=new Worker(n);URL.revokeObjectURL(n),a.onmessage=s=>t(s.data),a.onerror=s=>{s.preventDefault(),t({type:"error",text:s.message||p("web_run_error")})},a.postMessage({type:"run",code:e}),this.worker=a}catch{this.runInPage(e,t)}this.setRunning(!0)}runInPage(e,t){const n={log:(...r)=>t({type:"log",lines:[r.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(" ")]})},a=r=>new Promise((o,l)=>{this.pendingAnswer=u=>u===null?l(new Error(Yh())):o(u),t({type:"prompt",text:r})}),s=(async()=>{}).constructor;new s("__visuStructPrompt","console",e)(a,n).then(()=>t({type:"done"})).catch(r=>t({type:"error",text:String(r)}))}onRunnerMessage(e){switch(e.type){case"log":this.appendOutput(e.lines??[]);break;case"prompt":{this.runInput.hidden=!1,this.runInput.querySelector("label").textContent=e.text??"";const t=this.runInput.querySelector("input");t.value="",t.focus();break}case"error":this.appendOutput([e.text??""]),this.runOutput.classList.add("error"),this.stopRun(!1);break;case"done":this.stopRun(!1);break}}appendOutput(e){this.outputLines.push(...e),this.outputLines.length>Sr&&(this.droppedLines+=this.outputLines.length-Sr,this.outputLines.splice(0,this.outputLines.length-Sr)),this.outputFrame===void 0&&(this.outputFrame=requestAnimationFrame(()=>{this.outputFrame=void 0;const t=this.droppedLines>0?p("web_run_dropped_fmt",this.droppedLines)+` `:"";this.runOutput.textContent=t+this.outputLines.join(` `)+(this.outputLines.length?` -`:""),this.runOutput.scrollTop=this.runOutput.scrollHeight}))}answer(e){var t;this.runInput.hidden=!0,this.worker?this.worker.postMessage({type:"answer",value:e}):(t=this.pendingAnswer)==null||t.call(this,e),this.pendingAnswer=void 0}stopRun(e){var t;(t=this.worker)==null||t.terminate(),this.worker=void 0,this.pendingAnswer=void 0,this.runInput&&(this.runInput.hidden=!0),e&&this.runner&&(this.runner.hidden=!0),this.setRunning(!1)}setRunning(e){const t=this.element.querySelector("[data-act=stop]");t&&(t.disabled=!e)}}const De=(i,e=!1)=>``,se={newFile:De(''),open:De(''),save:De(''),undo:De(''),redo:De(''),cut:De(''),copy:De(''),paste:De(''),trash:De(''),share:De(''),book:De(''),code:De(''),play:De('',!0),step:De(''),indent:De(''),stop:De('',!0),folder:De(''),newFolder:De(''),diagram:De(''),fileText:De('')},Ux="visustruct.learn.progress",Tr={"04-sequenz":"05-sequenz","05-variablen-und-datentypen":"04-variablen-und-datentypen","07-verzweigung":"08-verzweigung","08-bedingungen-verknuepfen":"09-bedingungen-verknuepfen","09-fallauswahl":"10-fallauswahl","10-while-schleife":"11-while-schleife","11-do-while-schleife":"12-do-while-schleife","12-for-schleife":"13-for-schleife","13-verschachteln":"14-verschachteln","14-arrays":"15-arrays","15-aufruf-und-aussprung":"18-aufruf-und-aussprung","16-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-suchen-und-sortieren":"19-suchen-und-sortieren","18-suchen-und-sortieren":"19-suchen-und-sortieren","16-simulation-und-schreibtischtest":"07-simulation-und-schreibtischtest","17-java":"20-java","18-java":"20-java","19-java":"20-java","18-python-und-javascript":"21-python-und-javascript","19-python-und-javascript":"21-python-und-javascript","20-python-und-javascript":"21-python-und-javascript","22-erstes-fenster":"28-erstes-fenster","23-knopf-im-fenster":"29-knopf-im-fenster","24-der-knopf-reagiert":"30-der-knopf-reagiert","23-erstes-fenster":"28-erstes-fenster","24-knopf-im-fenster":"29-knopf-im-fenster","25-der-knopf-reagiert":"30-der-knopf-reagiert","26-zahl-verdoppeln":"31-zahl-verdoppeln","27-klickzaehler":"32-klickzaehler","28-ampel":"33-ampel","29-notenrechner":"34-notenrechner","30-taschenrechner":"35-taschenrechner","31-zahlenraten":"36-zahlenraten","13-lautsprecher":"16-lautsprecher","14-bildschirm":"18-bildschirm","15-motoren":"20-motoren","16-stoppuhr-akku":"21-stoppuhr-akku","03-sensoren":"04-sensoren","04-bis-zur-wand":"05-bis-zur-wand","05-abstand":"06-abstand","06-linie":"07-linie","07-farben":"08-farben","08-tasten-joystick":"10-tasten-joystick","09-licht":"11-licht","10-lautstaerke":"12-lautstaerke","11-neigung":"13-neigung","12-leds":"14-leds","13-einzelne-leds":"15-einzelne-leds","14-lautsprecher":"16-lautsprecher","15-bildschirm":"18-bildschirm","16-motoren":"20-motoren","17-stoppuhr-akku":"21-stoppuhr-akku"};function $x(i){var n;const e={...i.lessons};for(const[a,s]of Object.entries(Tr))i.lessons[a]&&!i.lessons[s]&&(e[s]=i.lessons[a]),i.lessons[a]&&delete e[a];const t=(n=i.view)!=null&&n.lesson&&Tr[i.view.lesson]?{...i.view,lesson:Tr[i.view.lesson]}:i.view;return{...i,lessons:e,view:t}}function Yx(){try{localStorage.removeItem(Ux)}catch{}}const Yh=()=>({lessons:{},exercises:{}});Yx();let et=Yh();const Lo=new Set;function la(){for(const i of Lo)i()}const Mu="visustruct-lernstand";function Xh(i,e){return i||e||void 0}function Xx(i,e){if(!i)return e;const t={...e.checks};for(const[n,a]of Object.entries(i.checks??{}))t[n]=a||t[n]||!1;return{step:Math.max(i.step??0,e.step??0),done:Xh(i.done,e.done),checks:Object.keys(t).length?t:void 0,quiz:i.quiz||e.quiz?{...e.quiz,...i.quiz}:void 0}}function Kx(i,e){const t={...i.lessons};for(const[a,s]of Object.entries(e.lessons))t[a]=Xx(i.lessons[a],s);const n={...i.exercises};for(const[a,s]of Object.entries(e.exercises)){const r=i.exercises[a];n[a]=r?{done:Xh(r.done,s.done),xml:r.xml??s.xml}:s}return{lessons:t,exercises:n}}const xe={lesson(i){return et.lessons[i]??{step:0}},updateLesson(i,e){et.lessons[i]={...xe.lesson(i),...e},la()},exercise(i){return et.exercises[i]??{}},updateExercise(i,e){et.exercises[i]={...xe.exercise(i),...e},la()},resetExercise(i){delete et.exercises[i],la()},view(){return et.view},hasContent(){return Object.values(et.lessons).some(i=>i.step>0||i.done||i.checks||i.quiz)||Object.keys(et.exercises).length>0},setView(i){et.view=i,la()},onChange(i){return Lo.add(i),()=>Lo.delete(i)},toFile(){return JSON.stringify({format:Mu,version:1,saved:new Date().toISOString(),lessons:et.lessons,exercises:et.exercises,view:et.view},null,2)},loadFile(i,e=!1){let t;try{t=JSON.parse(i)}catch{return!1}if((t==null?void 0:t.format)!==Mu)return!1;const n=$x({lessons:t.lessons??{},exercises:t.exercises??{},view:t.view});return et=e?{...Kx(et,n),view:n.view??et.view}:n,!0},clear(){et=Yh()}};function Bu(i=new Date){const e=t=>String(t).padStart(2,"0");return`${i.getFullYear()}-${e(i.getMonth()+1)}-${e(i.getDate())}`}const Zu=i=>/^\d{4}-\d{2}-\d{2}$/.test(i);function eb(i,e){return i.kind!==e.kind?i.kind==="directory"?-1:1:Zu(i.name)&&Zu(e.name)?e.name.localeCompare(i.name):i.name.localeCompare(e.name,void 0,{numeric:!0,sensitivity:"base"})}function tb(i,e){return i.replace(/\.(visustruct|strk|java)$/i,"").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"-").replace(/\s+/g," ").trim().replace(/^\.+/,"")||e}function nb(i,e){const t=new Set([...e].map(a=>a.toLowerCase())),n=a=>!t.has(`${a}.visustruct`.toLowerCase())&&!t.has(`${a}.java`.toLowerCase());if(n(i))return i;for(let a=2;;a++)if(n(`${i} ${a}`))return`${i} ${a}`}function ib(i){const e=i.replace(/[\\/:*?"<>|\u0000-\u001f]/g,"").trim();return e&&e!=="."&&e!==".."?e:void 0}const Un=10;function ab(i){let e=i.replace(/\r/g,"").split(` -`).filter(m=>!m.startsWith("//"));const t=e.filter(m=>/^linie:/.test(m)).map(m=>m.slice(6).trim());e=e.filter(m=>!/^linie:/.test(m));const n=e.findIndex(m=>/^raster:\s*\d+\s*$/.test(m));if(n>=0){const m=Number(e[n].split(":")[1]);e.splice(n,1),e=e.flatMap(c=>Array.from({length:m},(d,h)=>Array.from(c).map(g=>Array.from({length:m},(f,x)=>"^>v<".includes(g)?h===m>>1&&x===m>>1?g:".":g).join("")).join("")))}for(;e.length&&e[e.length-1].trim()==="";)e.pop();for(;e.length&&e[0].trim()==="";)e.shift();const s=Math.max(...e.map(m=>m.length))*Un,r=e.length*Un,o=(m,c)=>({x:-s/2+(m+.5)*Un,y:r/2-(c+.5)*Un}),l={width:s,depth:r,start:{x:0,y:0,heading:0},walls:[],lines:[],blocks:[],marks:[],goals:[],targets:[],colors:[]};let u=0;e.forEach((m,c)=>{Array.from(m).forEach((d,h)=>{const g=o(h,c);d==="#"?l.blocks.push(g):d==="="?l.marks.push(g):d==="Z"?l.goals.push(g):d==="o"?l.targets.push(g):d in Lu?l.colors.push({at:g,color:Lu[d]}):"^>v<".includes(d)&&(u++,l.start={...g,heading:{"^":0,">":90,v:180,"<":270}[d]})})});for(const m of t)l.lines.push(m.split(/\s+/).map(c=>{const[d,h]=c.split(",").map(Number);if(!Number.isFinite(d)||!Number.isFinite(h))throw new Error(`Linie: „${c}“ ist kein Feld (Spalte,Zeile).`);return o(d,h)}));if(u!==1)throw new Error(`Die Weltkarte braucht genau einen Start (^ > v <), gefunden: ${u}`);return l}const Lu={r:"red",g:"green",b:"blue",y:"yellow"},Q1=(i,e)=>Math.abs(i.x-e.x)<=Un/2&&Math.abs(i.y-e.y)<=Un/2,Wu=10,Eu=9,sb=300,d1=8,rb=[-3.6,-1.2,1.2,3.6],ob=2.5,lb=20,ub=12,m0=100,ji={width:200,depth:200,start:{x:0,y:0,heading:0},walls:[],lines:[]},Nu=i=>i*Math.PI/180,h1=i=>({x:Math.sin(Nu(i)),y:Math.cos(Nu(i))}),ua=()=>Array.from({length:yh},()=>{}),Fu=([i,e,t])=>i>0||e>0||t>0?[i,e,t]:void 0;class xs{constructor(e=ji){y(this,"pose");y(this,"trail");y(this,"bumps",0);y(this,"leds",ua());y(this,"screen");y(this,"wheels",[0,0]);y(this,"time",0);y(this,"timerStart",0);y(this,"blocked",!1);y(this,"blockWallCache");this.setup=e,this.pose={...e.start},this.trail=[{x:e.start.x,y:e.start.y}]}reset(){this.pose={...this.setup.start},this.trail=[{x:this.pose.x,y:this.pose.y}],this.bumps=0,this.leds=ua(),this.screen=void 0,this.wheels=[0,0],this.time=0,this.timerStart=0,this.blocked=!1}get allWalls(){const e=this.setup.width/2,t=this.setup.depth/2,n=[{x:-e,y:-t},{x:e,y:-t},{x:e,y:t},{x:-e,y:t}];return[...this.setup.walls,...n.map((a,s)=>({from:a,to:n[(s+1)%4]})),...this.blockWalls]}get blockWalls(){return this.blockWallCache??(this.blockWallCache=(this.setup.blocks??[]).flatMap(e=>{const t=Un/2,n=[{x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t},{x:e.x-t,y:e.y+t}];return n.map((a,s)=>({from:a,to:n[(s+1)%4]}))})),this.blockWallCache}atGoal(){const e=h1(this.pose.heading),t={x:this.pose.x+e.x*d1,y:this.pose.y+e.y*d1};return(this.setup.goals??[]).some(n=>Q1(this.pose,n)||Q1(t,n))||(this.setup.targets??[]).some(n=>Q1(this.pose,n))}apply(e){switch(e.method){case"forward":return this.wheels=[0,0],this.drive(e.args[0]);case"backward":return this.wheels=[0,0],this.drive(-e.args[0]);case"turnRight":return this.wheels=[0,0],this.turn(e.args[0]);case"turnLeft":return this.wheels=[0,0],this.turn(-e.args[0]);case"stop":this.wheels=[0,0];return;case"drive":this.wheels=[Ju(e.args[0]),Ju(e.args[1])];return;case"pause":return this.tick(e.args[0]);case"resetTimer":this.timerStart=this.time;return;case"setLed":this.leds=ua().map(()=>Fu(e.args));return;case"ledOff":this.leds=ua();return;case"ledColor":this.leds[e.args[0]]=Fu(rs[e.text??""]??[0,0,0]);return;case"showText":this.screen=e.text;return}}tick(e){if(e<=0)return;this.time+=e;const[t,n]=this.wheels.map(o=>o/100*lb);if(t===0&&n===0)return;const a=Math.ceil(e/10),s=e/1e3/a;let r=!1;for(let o=0;o{const r={x:this.pose.x+e.x*d1+t.x*a,y:this.pose.y+e.y*d1+t.y*a};([...this.setup.marks??[],...this.setup.goals??[]].some(l=>Q1(r,l))||this.setup.lines.some(l=>cb(r,l)<=ob/2))&&(n|=1<<3-s)}),n}colorUnder(){var n;const e=h1(this.pose.heading),t={x:this.pose.x+e.x*d1,y:this.pose.y+e.y*d1};return(n=(this.setup.colors??[]).find(a=>Q1(t,a.at)))==null?void 0:n.color}sensors(){const e=this.lineState();return{getDistance:this.distance(),getLine:e,getColor:this.colorUnder()??(e&6?"black":"white"),isLineLeft:(e&4)!==0,isLineRight:(e&2)!==0,getTimer:this.timer}}freeDistance(e,t){let n=1/0;for(const a of this.allWalls){const s=mb(e,t,a.from,a.to);s!==void 0&&sMath.max(-100,Math.min(100,i));function Ru(i){const e=(i%360+360)%360;return Math.abs(e-360)<1e-9?0:e}function mb(i,e,t,n){const a={x:n.x-t.x,y:n.y-t.y},s=e.x*a.y-e.y*a.x;if(Math.abs(s)<1e-12)return;const r={x:t.x-i.x,y:t.y-i.y},o=(r.x*a.y-r.y*a.x)/s,l=(r.x*e.y-r.y*e.x)/s;return o>=0&&l>=0&&l<=1?o:void 0}function cb(i,e){let t=1/0;for(let n=0;n+10&&o.tick(m0),s.robotSensors={...o.sensors(),...xb(a,u)};const c=()=>({outputs:[...m.outputLines],files:new Map(m.files),drive:m.robotActions.length?ls(m.robotActions):void 0,...n?{atGoal:o.atGoal(),bumps:o.bumps}:{},led:o.leds.some(d=>d!==void 0),tone:m.robotActions.some(d=>d.method==="playTone"),screen:o.screen,actions:zh(m.robotActions.filter(d=>!pb.has(d.method)))});if(m.inputRequest){const d=r.shift();if(d===void 0)return{...c(),missingInput:!0};if(s.provideInput(d),m.inputErrorNotice)return{...c(),error:m.inputErrorNotice};continue}if(m.isHalted)return{...c(),error:m.notice};if(!s.canStep)return{...c(),unusedInputs:r.length||void 0};s.step()}return{outputs:[...s.state.outputLines],files:new Map(s.state.files),drive:ls(s.state.robotActions),tooManySteps:!0}}function xb(i,e){const t=Math.floor(e/hb);return Object.fromEntries(Object.entries(i??{}).map(([n,a])=>[n,a[Math.min(t,a.length-1)]]))}function Kh(i){return i===void 0||i===""?[]:i.replace(/\n$/,"").split(` -`)}function ma(i,e){return i.length!==e.length?!1:i.every((t,n)=>Gu(t)===Gu(e[n]))}function bb(i,e){const t=n=>n.join("").replace(/\s+/g,"");return i.length>0&&i.length{var d,h,g;const s=a.world?n==null?void 0:n(a.world):void 0;if(a.world&&!s)throw new Error(`Weltkarte „${a.world}“ fehlt.`);const r=fb(i,a.inputs,t,s,a.sensors),o=(a.files??[]).every(f=>{var x;return ma(Kh((x=r.files)==null?void 0:x.get(f.name)),f.lines)}),l=!a.drive||ma(r.drive??[],a.drive),u=!a.world||r.bumps===0&&(!((d=s==null?void 0:s.goals)!=null&&d.length||(h=s==null?void 0:s.targets)!=null&&h.length)||r.atGoal===!0),m=(a.led===void 0||r.led===a.led)&&(a.tone===void 0||r.tone===a.tone)&&(a.screen===void 0||r.screen===a.screen)&&(a.drives===void 0||(((g=r.drive)==null?void 0:g.length)??0)>0===a.drives)&&(!a.actions||ma(r.actions??[],a.actions)),c=!r.error&&!r.missingInput&&!r.tooManySteps&&ma(r.outputs,a.expected)&&o&&l&&u&&m;return{test:a,result:r,passed:c}})}function yb(i){const e=new Set,t=n=>{for(const a of n){e.add(a.type),a.loopBody&&t(a.loopBody);for(const s of a.cases??[])t(s.elements)}};return t(i.elements),e}function Wo(i){const e=[T.forSchleife,T.whileSchleife,T.doUntilSchleife,T.endlosschleife];let t=0;for(const n of i){const a=Math.max(Wo(n.loopBody??[]),...(n.cases??[]).map(s=>Wo(s.elements)));t=Math.max(t,a+(e.includes(n.type)?1:0))}return t}class Ci extends Error{}function wb(i,e){const t=[],n=[];for(const a of i){const s=a.trim();if(!s)continue;if(s.startsWith("?")){const o=s.slice(1).trim();bs(o,zb(t)),n.push(o);continue}const r=/^([A-Za-z_]\w*)\s*:\s*(?:(-?\d+)\s*\.\.\s*(-?\d+)|(boolean))$/.exec(s);if(!r)throw new Ci(`${e}: Unbekannte Zeile im Spiel: „${s}“`);t.push(r[4]?{name:r[1],kind:"boolean"}:{name:r[1],kind:"int",min:Number(r[2]),max:Number(r[3])})}if(!n.length)throw new Ci(`${e}: Das Spiel braucht mindestens eine Zeile „? bedingung“.`);return{vars:t,conditions:n}}function zb(i){return Object.fromEntries(i.map(e=>[e.name,e.kind==="boolean"?!0:e.min]))}function Ib(i){const e=[],t=/\s*(?:(\d+)|(true|false)\b|([A-Za-z_]\w*)|(&&|\|\||==|!=|<=|>=|<|>|!|\(|\)))/y;let n=0;for(;nt[n],s=d=>{var h;return((h=a())==null?void 0:h.kind)==="op"&&a().value===d},r=()=>{throw new Ci(`Bedingung nicht lesbar: „${i}“`)},o=()=>{const d=t[n++]??r();if(d.kind==="num"||d.kind==="bool")return d.value;if(d.kind==="name"){if(!(d.value in e))throw new Ci(`Unbekannte Variable „${d.value}“ in „${i}“`);return e[d.value]}if(d.value==="("){const h=m();return s(")")||r(),n++,h}if(d.value==="!"){const h=o();return typeof h!="boolean"&&r(),!h}return r()},l=()=>{const d=o(),h=a();if((h==null?void 0:h.kind)==="op"&&["==","!=","<","<=",">",">="].includes(h.value)){n++;const g=o();switch(h.value){case"==":return d===g;case"!=":return d!==g}(typeof d!="number"||typeof g!="number")&&r();const[f,x]=[d,g];return h.value==="<"?f"?f>x:f>=x}return d},u=()=>{let d=l();for(;s("&&");){n++;const h=l();d=d&&h}return d},m=()=>{let d=u();for(;s("||");){n++;const h=u();d=d||h}return d},c=m();return n!==t.length||typeof c!="boolean"?r():c}function kb(i,e){const t=[i],n=i.replace(/\b[A-Za-z_]\w*\b/g,r=>r in e?String(e[r]):r);n!==i&&t.push(n);const a=n.replace(/(-?\d+|true|false)\s*(==|!=|<=|>=|<|>)\s*(-?\d+|true|false)/g,r=>String(bs(r,{})));a!==t[t.length-1]&&t.push(a);const s=String(bs(i,e));return s!==t[t.length-1]&&t.push(s),t}function Sb(i,e){const t=[],n=new RegExp(`\\b${e}\\s*(?:==|!=|<=|>=|<|>)\\s*(-?\\d+)|(-?\\d+)\\s*(?:==|!=|<=|>=|<|>)\\s*${e}\\b`,"g");for(const a of i.matchAll(n)){const s=Number(a[1]??a[2]);t.push(s-1,s,s+1)}return t}function Tb(i,e,t,n=Math.random){const a=i.conditions.length,s=Math.floor(e*a/t),r=Math.min(a-1,s+(n()<.5?0:1)),o=i.conditions[r],l={};for(const u of i.vars){if(u.kind==="boolean"){l[u.name]=n()<.5;continue}const m=Sb(o,u.name).filter(c=>c>=u.min&&c<=u.max);l[u.name]=m.length&&n()<.6?m[Math.floor(n()*m.length)]:u.min+Math.floor(n()*(u.max-u.min+1))}return{condition:o,values:l,answer:bs(o,l)}}function _b(i){return Object.entries(i.values).filter(([e])=>new RegExp(`\\b${e}\\b`).test(i.condition))}const jb=`--- +`:""),this.runOutput.scrollTop=this.runOutput.scrollHeight}))}answer(e){var t;this.runInput.hidden=!0,this.worker?this.worker.postMessage({type:"answer",value:e}):(t=this.pendingAnswer)==null||t.call(this,e),this.pendingAnswer=void 0}stopRun(e){var t;(t=this.worker)==null||t.terminate(),this.worker=void 0,this.pendingAnswer=void 0,this.runInput&&(this.runInput.hidden=!0),e&&this.runner&&(this.runner.hidden=!0),this.setRunning(!1)}setRunning(e){const t=this.element.querySelector("[data-act=stop]");t&&(t.disabled=!e)}}const Me=(i,e=!1)=>``,se={newFile:Me(''),open:Me(''),save:Me(''),undo:Me(''),redo:Me(''),cut:Me(''),copy:Me(''),paste:Me(''),trash:Me(''),share:Me(''),book:Me(''),code:Me(''),play:Me('',!0),step:Me(''),indent:Me(''),stop:Me('',!0),folder:Me(''),newFolder:Me(''),diagram:Me(''),fileText:Me('')},Ux="visustruct.learn.progress",Tr={"04-sequenz":"05-sequenz","05-variablen-und-datentypen":"04-variablen-und-datentypen","07-verzweigung":"08-verzweigung","08-bedingungen-verknuepfen":"09-bedingungen-verknuepfen","09-fallauswahl":"10-fallauswahl","10-while-schleife":"11-while-schleife","11-do-while-schleife":"12-do-while-schleife","12-for-schleife":"13-for-schleife","13-verschachteln":"14-verschachteln","14-arrays":"15-arrays","15-aufruf-und-aussprung":"18-aufruf-und-aussprung","16-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-suchen-und-sortieren":"19-suchen-und-sortieren","18-suchen-und-sortieren":"19-suchen-und-sortieren","16-simulation-und-schreibtischtest":"07-simulation-und-schreibtischtest","17-java":"20-java","18-java":"20-java","19-java":"20-java","18-python-und-javascript":"21-python-und-javascript","19-python-und-javascript":"21-python-und-javascript","20-python-und-javascript":"21-python-und-javascript","22-erstes-fenster":"28-erstes-fenster","23-knopf-im-fenster":"29-knopf-im-fenster","24-der-knopf-reagiert":"30-der-knopf-reagiert","23-erstes-fenster":"28-erstes-fenster","24-knopf-im-fenster":"29-knopf-im-fenster","25-der-knopf-reagiert":"30-der-knopf-reagiert","26-zahl-verdoppeln":"31-zahl-verdoppeln","27-klickzaehler":"32-klickzaehler","28-ampel":"33-ampel","29-notenrechner":"34-notenrechner","30-taschenrechner":"35-taschenrechner","31-zahlenraten":"36-zahlenraten","13-lautsprecher":"16-lautsprecher","14-bildschirm":"18-bildschirm","15-motoren":"20-motoren","16-stoppuhr-akku":"21-stoppuhr-akku","03-sensoren":"04-sensoren","04-bis-zur-wand":"05-bis-zur-wand","05-abstand":"06-abstand","06-linie":"07-linie","07-farben":"08-farben","08-tasten-joystick":"10-tasten-joystick","09-licht":"11-licht","10-lautstaerke":"12-lautstaerke","11-neigung":"13-neigung","12-leds":"14-leds","13-einzelne-leds":"15-einzelne-leds","14-lautsprecher":"16-lautsprecher","15-bildschirm":"18-bildschirm","16-motoren":"20-motoren","17-stoppuhr-akku":"21-stoppuhr-akku"};function Yx(i){var n;const e={...i.lessons};for(const[a,s]of Object.entries(Tr))i.lessons[a]&&!i.lessons[s]&&(e[s]=i.lessons[a]),i.lessons[a]&&delete e[a];const t=(n=i.view)!=null&&n.lesson&&Tr[i.view.lesson]?{...i.view,lesson:Tr[i.view.lesson]}:i.view;return{...i,lessons:e,view:t}}function $x(){try{localStorage.removeItem(Ux)}catch{}}const $h=()=>({lessons:{},exercises:{}});$x();let et=$h();const Lo=new Set;function la(){for(const i of Lo)i()}const Zu="visustruct-lernstand";function Xh(i,e){return i||e||void 0}function Xx(i,e){if(!i)return e;const t={...e.checks};for(const[n,a]of Object.entries(i.checks??{}))t[n]=a||t[n]||!1;return{step:Math.max(i.step??0,e.step??0),done:Xh(i.done,e.done),checks:Object.keys(t).length?t:void 0,quiz:i.quiz||e.quiz?{...e.quiz,...i.quiz}:void 0}}function Kx(i,e){const t={...i.lessons};for(const[a,s]of Object.entries(e.lessons))t[a]=Xx(i.lessons[a],s);const n={...i.exercises};for(const[a,s]of Object.entries(e.exercises)){const r=i.exercises[a];n[a]=r?{done:Xh(r.done,s.done),xml:r.xml??s.xml}:s}return{lessons:t,exercises:n}}const xe={lesson(i){return et.lessons[i]??{step:0}},updateLesson(i,e){et.lessons[i]={...xe.lesson(i),...e},la()},exercise(i){return et.exercises[i]??{}},updateExercise(i,e){et.exercises[i]={...xe.exercise(i),...e},la()},resetExercise(i){delete et.exercises[i],la()},view(){return et.view},hasContent(){return Object.values(et.lessons).some(i=>i.step>0||i.done||i.checks||i.quiz)||Object.keys(et.exercises).length>0},setView(i){et.view=i,la()},onChange(i){return Lo.add(i),()=>Lo.delete(i)},toFile(){return JSON.stringify({format:Zu,version:1,saved:new Date().toISOString(),lessons:et.lessons,exercises:et.exercises,view:et.view},null,2)},loadFile(i,e=!1){let t;try{t=JSON.parse(i)}catch{return!1}if((t==null?void 0:t.format)!==Zu)return!1;const n=Yx({lessons:t.lessons??{},exercises:t.exercises??{},view:t.view});return et=e?{...Kx(et,n),view:n.view??et.view}:n,!0},clear(){et=$h()}};function Du(i=new Date){const e=t=>String(t).padStart(2,"0");return`${i.getFullYear()}-${e(i.getMonth()+1)}-${e(i.getDate())}`}const Bu=i=>/^\d{4}-\d{2}-\d{2}$/.test(i);function eb(i,e){return i.kind!==e.kind?i.kind==="directory"?-1:1:Bu(i.name)&&Bu(e.name)?e.name.localeCompare(i.name):i.name.localeCompare(e.name,void 0,{numeric:!0,sensitivity:"base"})}function tb(i,e){return i.replace(/\.(visustruct|strk|java)$/i,"").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"-").replace(/\s+/g," ").trim().replace(/^\.+/,"")||e}function nb(i,e){const t=new Set([...e].map(a=>a.toLowerCase())),n=a=>!t.has(`${a}.visustruct`.toLowerCase())&&!t.has(`${a}.java`.toLowerCase());if(n(i))return i;for(let a=2;;a++)if(n(`${i} ${a}`))return`${i} ${a}`}function ib(i){const e=i.replace(/[\\/:*?"<>|\u0000-\u001f]/g,"").trim();return e&&e!=="."&&e!==".."?e:void 0}const Un=10;function ab(i){let e=i.replace(/\r/g,"").split(` +`).filter(m=>!m.startsWith("//"));const t=e.filter(m=>/^linie:/.test(m)).map(m=>m.slice(6).trim());e=e.filter(m=>!/^linie:/.test(m));const n=e.findIndex(m=>/^raster:\s*\d+\s*$/.test(m));if(n>=0){const m=Number(e[n].split(":")[1]);e.splice(n,1),e=e.flatMap(c=>Array.from({length:m},(d,h)=>Array.from(c).map(g=>Array.from({length:m},(f,x)=>"^>v<".includes(g)?h===m>>1&&x===m>>1?g:".":g).join("")).join("")))}for(;e.length&&e[e.length-1].trim()==="";)e.pop();for(;e.length&&e[0].trim()==="";)e.shift();const s=Math.max(...e.map(m=>m.length))*Un,r=e.length*Un,o=(m,c)=>({x:-s/2+(m+.5)*Un,y:r/2-(c+.5)*Un}),l={width:s,depth:r,start:{x:0,y:0,heading:0},walls:[],lines:[],blocks:[],marks:[],goals:[],targets:[],colors:[]};let u=0;e.forEach((m,c)=>{Array.from(m).forEach((d,h)=>{const g=o(h,c);d==="#"?l.blocks.push(g):d==="="?l.marks.push(g):d==="Z"?l.goals.push(g):d==="o"?l.targets.push(g):d in Lu?l.colors.push({at:g,color:Lu[d]}):"^>v<".includes(d)&&(u++,l.start={...g,heading:{"^":0,">":90,v:180,"<":270}[d]})})});for(const m of t)l.lines.push(m.split(/\s+/).map(c=>{const[d,h]=c.split(",").map(Number);if(!Number.isFinite(d)||!Number.isFinite(h))throw new Error(`Linie: „${c}“ ist kein Feld (Spalte,Zeile).`);return o(d,h)}));if(u!==1)throw new Error(`Die Weltkarte braucht genau einen Start (^ > v <), gefunden: ${u}`);return l}const Lu={r:"red",g:"green",b:"blue",y:"yellow"},q1=(i,e)=>Math.abs(i.x-e.x)<=Un/2&&Math.abs(i.y-e.y)<=Un/2,Wu=10,Eu=9,sb=300,d1=8,rb=[-3.6,-1.2,1.2,3.6],ob=2.5,lb=20,ub=12,m0=100,_i={width:200,depth:200,start:{x:0,y:0,heading:0},walls:[],lines:[]},Nu=i=>i*Math.PI/180,h1=i=>({x:Math.sin(Nu(i)),y:Math.cos(Nu(i))}),ua=()=>Array.from({length:yh},()=>{}),Ju=([i,e,t])=>i>0||e>0||t>0?[i,e,t]:void 0;class xs{constructor(e=_i){y(this,"pose");y(this,"trail");y(this,"bumps",0);y(this,"leds",ua());y(this,"screen");y(this,"wheels",[0,0]);y(this,"time",0);y(this,"timerStart",0);y(this,"blocked",!1);y(this,"blockWallCache");this.setup=e,this.pose={...e.start},this.trail=[{x:e.start.x,y:e.start.y}]}reset(){this.pose={...this.setup.start},this.trail=[{x:this.pose.x,y:this.pose.y}],this.bumps=0,this.leds=ua(),this.screen=void 0,this.wheels=[0,0],this.time=0,this.timerStart=0,this.blocked=!1}get allWalls(){const e=this.setup.width/2,t=this.setup.depth/2,n=[{x:-e,y:-t},{x:e,y:-t},{x:e,y:t},{x:-e,y:t}];return[...this.setup.walls,...n.map((a,s)=>({from:a,to:n[(s+1)%4]})),...this.blockWalls]}get blockWalls(){return this.blockWallCache??(this.blockWallCache=(this.setup.blocks??[]).flatMap(e=>{const t=Un/2,n=[{x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t},{x:e.x-t,y:e.y+t}];return n.map((a,s)=>({from:a,to:n[(s+1)%4]}))})),this.blockWallCache}atGoal(){const e=h1(this.pose.heading),t={x:this.pose.x+e.x*d1,y:this.pose.y+e.y*d1};return(this.setup.goals??[]).some(n=>q1(this.pose,n)||q1(t,n))||(this.setup.targets??[]).some(n=>q1(this.pose,n))}apply(e){switch(e.method){case"forward":return this.wheels=[0,0],this.drive(e.args[0]);case"backward":return this.wheels=[0,0],this.drive(-e.args[0]);case"turnRight":return this.wheels=[0,0],this.turn(e.args[0]);case"turnLeft":return this.wheels=[0,0],this.turn(-e.args[0]);case"stop":this.wheels=[0,0];return;case"drive":this.wheels=[Fu(e.args[0]),Fu(e.args[1])];return;case"pause":return this.tick(e.args[0]);case"resetTimer":this.timerStart=this.time;return;case"setLed":this.leds=ua().map(()=>Ju(e.args));return;case"ledOff":this.leds=ua();return;case"ledColor":this.leds[e.args[0]]=Ju(rs[e.text??""]??[0,0,0]);return;case"showText":this.screen=e.text;return}}tick(e){if(e<=0)return;this.time+=e;const[t,n]=this.wheels.map(o=>o/100*lb);if(t===0&&n===0)return;const a=Math.ceil(e/10),s=e/1e3/a;let r=!1;for(let o=0;o{const r={x:this.pose.x+e.x*d1+t.x*a,y:this.pose.y+e.y*d1+t.y*a};([...this.setup.marks??[],...this.setup.goals??[]].some(l=>q1(r,l))||this.setup.lines.some(l=>cb(r,l)<=ob/2))&&(n|=1<<3-s)}),n}colorUnder(){var n;const e=h1(this.pose.heading),t={x:this.pose.x+e.x*d1,y:this.pose.y+e.y*d1};return(n=(this.setup.colors??[]).find(a=>q1(t,a.at)))==null?void 0:n.color}sensors(){const e=this.lineState();return{getDistance:this.distance(),getLine:e,getColor:this.colorUnder()??(e&6?"black":"white"),isLineLeft:(e&4)!==0,isLineRight:(e&2)!==0,getTimer:this.timer}}freeDistance(e,t){let n=1/0;for(const a of this.allWalls){const s=mb(e,t,a.from,a.to);s!==void 0&&sMath.max(-100,Math.min(100,i));function Ru(i){const e=(i%360+360)%360;return Math.abs(e-360)<1e-9?0:e}function mb(i,e,t,n){const a={x:n.x-t.x,y:n.y-t.y},s=e.x*a.y-e.y*a.x;if(Math.abs(s)<1e-12)return;const r={x:t.x-i.x,y:t.y-i.y},o=(r.x*a.y-r.y*a.x)/s,l=(r.x*e.y-r.y*e.x)/s;return o>=0&&l>=0&&l<=1?o:void 0}function cb(i,e){let t=1/0;for(let n=0;n+10&&o.tick(m0),s.robotSensors={...o.sensors(),...xb(a,u)};const c=()=>({outputs:[...m.outputLines],files:new Map(m.files),drive:m.robotActions.length?ls(m.robotActions):void 0,...n?{atGoal:o.atGoal(),bumps:o.bumps}:{},led:o.leds.some(d=>d!==void 0),tone:m.robotActions.some(d=>d.method==="playTone"),screen:o.screen,actions:zh(m.robotActions.filter(d=>!pb.has(d.method)))});if(m.inputRequest){const d=r.shift();if(d===void 0)return{...c(),missingInput:!0};if(s.provideInput(d),m.inputErrorNotice)return{...c(),error:m.inputErrorNotice};continue}if(m.isHalted)return{...c(),error:m.notice};if(!s.canStep)return{...c(),unusedInputs:r.length||void 0};s.step()}return{outputs:[...s.state.outputLines],files:new Map(s.state.files),drive:ls(s.state.robotActions),tooManySteps:!0}}function xb(i,e){const t=Math.floor(e/hb);return Object.fromEntries(Object.entries(i??{}).map(([n,a])=>[n,a[Math.min(t,a.length-1)]]))}function Kh(i){return i===void 0||i===""?[]:i.replace(/\n$/,"").split(` +`)}function ma(i,e){return i.length!==e.length?!1:i.every((t,n)=>Gu(t)===Gu(e[n]))}function bb(i,e){const t=n=>n.join("").replace(/\s+/g,"");return i.length>0&&i.length{var d,h,g;const s=a.world?n==null?void 0:n(a.world):void 0;if(a.world&&!s)throw new Error(`Weltkarte „${a.world}“ fehlt.`);const r=fb(i,a.inputs,t,s,a.sensors),o=(a.files??[]).every(f=>{var x;return ma(Kh((x=r.files)==null?void 0:x.get(f.name)),f.lines)}),l=!a.drive||ma(r.drive??[],a.drive),u=!a.world||r.bumps===0&&(!((d=s==null?void 0:s.goals)!=null&&d.length||(h=s==null?void 0:s.targets)!=null&&h.length)||r.atGoal===!0),m=(a.led===void 0||r.led===a.led)&&(a.tone===void 0||r.tone===a.tone)&&(a.screen===void 0||r.screen===a.screen)&&(a.drives===void 0||(((g=r.drive)==null?void 0:g.length)??0)>0===a.drives)&&(!a.actions||ma(r.actions??[],a.actions)),c=!r.error&&!r.missingInput&&!r.tooManySteps&&ma(r.outputs,a.expected)&&o&&l&&u&&m;return{test:a,result:r,passed:c}})}function yb(i){const e=new Set,t=n=>{for(const a of n){e.add(a.type),a.loopBody&&t(a.loopBody);for(const s of a.cases??[])t(s.elements)}};return t(i.elements),e}function Wo(i){const e=[T.forSchleife,T.whileSchleife,T.doUntilSchleife,T.endlosschleife];let t=0;for(const n of i){const a=Math.max(Wo(n.loopBody??[]),...(n.cases??[]).map(s=>Wo(s.elements)));t=Math.max(t,a+(e.includes(n.type)?1:0))}return t}class Ci extends Error{}function wb(i,e){const t=[],n=[];for(const a of i){const s=a.trim();if(!s)continue;if(s.startsWith("?")){const o=s.slice(1).trim();bs(o,zb(t)),n.push(o);continue}const r=/^([A-Za-z_]\w*)\s*:\s*(?:(-?\d+)\s*\.\.\s*(-?\d+)|(boolean))$/.exec(s);if(!r)throw new Ci(`${e}: Unbekannte Zeile im Spiel: „${s}“`);t.push(r[4]?{name:r[1],kind:"boolean"}:{name:r[1],kind:"int",min:Number(r[2]),max:Number(r[3])})}if(!n.length)throw new Ci(`${e}: Das Spiel braucht mindestens eine Zeile „? bedingung“.`);return{vars:t,conditions:n}}function zb(i){return Object.fromEntries(i.map(e=>[e.name,e.kind==="boolean"?!0:e.min]))}function Ib(i){const e=[],t=/\s*(?:(\d+)|(true|false)\b|([A-Za-z_]\w*)|(&&|\|\||==|!=|<=|>=|<|>|!|\(|\)))/y;let n=0;for(;nt[n],s=d=>{var h;return((h=a())==null?void 0:h.kind)==="op"&&a().value===d},r=()=>{throw new Ci(`Bedingung nicht lesbar: „${i}“`)},o=()=>{const d=t[n++]??r();if(d.kind==="num"||d.kind==="bool")return d.value;if(d.kind==="name"){if(!(d.value in e))throw new Ci(`Unbekannte Variable „${d.value}“ in „${i}“`);return e[d.value]}if(d.value==="("){const h=m();return s(")")||r(),n++,h}if(d.value==="!"){const h=o();return typeof h!="boolean"&&r(),!h}return r()},l=()=>{const d=o(),h=a();if((h==null?void 0:h.kind)==="op"&&["==","!=","<","<=",">",">="].includes(h.value)){n++;const g=o();switch(h.value){case"==":return d===g;case"!=":return d!==g}(typeof d!="number"||typeof g!="number")&&r();const[f,x]=[d,g];return h.value==="<"?f"?f>x:f>=x}return d},u=()=>{let d=l();for(;s("&&");){n++;const h=l();d=d&&h}return d},m=()=>{let d=u();for(;s("||");){n++;const h=u();d=d||h}return d},c=m();return n!==t.length||typeof c!="boolean"?r():c}function kb(i,e){const t=[i],n=i.replace(/\b[A-Za-z_]\w*\b/g,r=>r in e?String(e[r]):r);n!==i&&t.push(n);const a=n.replace(/(-?\d+|true|false)\s*(==|!=|<=|>=|<|>)\s*(-?\d+|true|false)/g,r=>String(bs(r,{})));a!==t[t.length-1]&&t.push(a);const s=String(bs(i,e));return s!==t[t.length-1]&&t.push(s),t}function Sb(i,e){const t=[],n=new RegExp(`\\b${e}\\s*(?:==|!=|<=|>=|<|>)\\s*(-?\\d+)|(-?\\d+)\\s*(?:==|!=|<=|>=|<|>)\\s*${e}\\b`,"g");for(const a of i.matchAll(n)){const s=Number(a[1]??a[2]);t.push(s-1,s,s+1)}return t}function Tb(i,e,t,n=Math.random){const a=i.conditions.length,s=Math.floor(e*a/t),r=Math.min(a-1,s+(n()<.5?0:1)),o=i.conditions[r],l={};for(const u of i.vars){if(u.kind==="boolean"){l[u.name]=n()<.5;continue}const m=Sb(o,u.name).filter(c=>c>=u.min&&c<=u.max);l[u.name]=m.length&&n()<.6?m[Math.floor(n()*m.length)]:u.min+Math.floor(n()*(u.max-u.min+1))}return{condition:o,values:l,answer:bs(o,l)}}function jb(i){return Object.entries(i.values).filter(([e])=>new RegExp(`\\b${e}\\b`).test(i.condition))}const _b=`--- titel: Was ist ein Struktogramm? bereich: Erste Schritte kurz: Algorithmen als Folge klarer Schritte darstellen und lesen. @@ -1693,7 +1693,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] Mit einem Doppelpunkt : > Fehlt das Semikolon, zeigt VisuStruct unter dem Code einen Hinweis. ::: -`,Db=`--- +`,Mb=`--- titel: Eingabe und Ausgabe bereich: Grundlagen kurz: Werte abfragen, Ergebnisse anzeigen und das EVA-Prinzip anwenden. @@ -2125,7 +2125,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] Bei der nächsten Leerzeile > Darum kann ein Kommentar mit \`/*\` über mehrere Zeilen gehen. Ein Kommentar mit \`//\` endet dagegen am Zeilenende. ::: -`,Mb=`--- +`,Zb=`--- titel: Simulation und Schreibtischtest bereich: Grundlagen kurz: Ein Struktogramm Schritt für Schritt ausführen, von Hand nachrechnen und Fehler finden. @@ -2177,6 +2177,10 @@ Am Ende erscheint **Simulation beendet**. Geht etwas schief, bleibt die Simulati Beim **Schreibtischtest** spielst du selbst den Computer. Du gehst das Struktogramm mit Stift und Papier durch und schreibst nach jedem Schritt die Werte der Variablen auf. Am besten machst du eine Tabelle: eine Spalte für den Schritt, eine für jede Variable und eine für die Ausgabe. +::: grafik l07-schreibtischtest-de.svg +Ein Blatt Papier und ein Stift genügen: Du schreibst nach jedem Schritt die neuen Werte in eine neue Zeile. +::: + Für das Diagramm oben sieht die Tabelle so aus: | Schritt | a | b | hilf | Ausgabe | @@ -2485,7 +2489,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [x] Logikfehler > Es gibt keine Meldung, das Ergebnis ist trotzdem falsch. So einen Fehler findest du nur mit deiner Erwartung und dem Schreibtischtest. ::: -`,Bb=`--- +`,Db=`--- titel: Verzweigung bereich: Grundlagen kurz: Mit einer Bedingung entscheiden, welcher von zwei Wegen ausgeführt wird. @@ -2853,7 +2857,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] Hinter einem Semikolon > \`if (alter >= 18) { … }\`: Die runden Klammern gehören zur Bedingung, die geschweiften zum Zweig. ::: -`,Zb=`--- +`,Bb=`--- titel: Bedingungen verknüpfen bereich: Grundlagen kurz: Mehrere Bedingungen mit und, oder und nicht verbinden und Wertebereiche prüfen. @@ -4473,7 +4477,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] i wird ausgegeben. > \`i++\` ist die Kurzform von \`i = i + 1\`. ::: -`,Fb=`--- +`,Jb=`--- titel: Verschachteln bereich: Grundlagen kurz: Verzweigungen in Schleifen und Schleifen in Schleifen kombinieren. @@ -4771,7 +4775,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [x] An den geschweiften Klammern und der Einrückung - [ ] An den Semikolons ::: -`,Jb=`--- +`,Fb=`--- titel: Arrays bereich: Grundlagen kurz: Viele Werte unter einem Namen speichern, mit dem Index darauf zugreifen und sie mit einer Schleife durchlaufen. @@ -6801,7 +6805,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] Eine While-Schleife kann keine Arrays durchlaufen. > Die Karte kann mehrmals vorkommen. Darum gehst du alle Karten bis zum Ende durch. ::: -`,qb=`--- +`,Qb=`--- titel: Struktogramm und Code bereich: Vom Struktogramm zum Code kurz: Alle Elemente in Java auf einen Blick, Code erzeugen, im Bereich Code Java schreiben, ausführen und Fehler suchen. @@ -7273,7 +7277,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ - [ ] Zeile 3 wird als Nächstes ausgeführt. > Der Haltepunkt ist ein runder roter Punkt, die nächste Zeile ist gelb. Eine rote Zeilennummer zeigt einen Syntaxfehler oder einen Laufzeitfehler. ::: -`,Qb=`--- +`,qb=`--- titel: Python und JavaScript bereich: Vom Struktogramm zum Code kurz: Python- und JavaScript-Code aus dem Struktogramm erzeugen und JavaScript direkt im Browser ausführen. @@ -7806,7 +7810,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ = ArithmeticException -> Teilen durch 0 = NumberFormatException -> Text ist keine Zahl ::: -`,$b=`--- +`,Yb=`--- titel: Text einlesen und speichern bereich: Dateien kurz: Mit Scanner eine Textdatei Zeile für Zeile lesen und mit PrintWriter eine Datei speichern. @@ -8060,7 +8064,7 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀ = println(text) -> schreibt eine Zeile = close() -> schließt die Datei ::: -`,Yb=`--- +`,$b=`--- titel: Zeile für Zeile mit BufferedReader bereich: Dateien kurz: Mit BufferedReader und readLine lesen, bis null kommt, und mit Files eine ganze Datei auf einmal lesen. @@ -14739,6 +14743,10 @@ At the end, **Simulation finished.** appears. If something goes wrong, the simul In a **desk check** you play the computer yourself. You go through the structure chart with pen and paper and write down the values of the variables after every step. It is best to make a table: one column for the step, one for each variable and one for the output. +::: grafik l07-schreibtischtest-en.svg +A sheet of paper and a pen are all you need: after each step you write the new values in a new row. +::: + For the diagram above, the table looks like this: | Step | a | b | temp | Output | @@ -16430,7 +16438,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] while (number > 0); > The condition is in round brackets, then \`{\` opens the body. ::: -`,_4=`--- +`,j4=`--- titel: Do-while loop bereich: Basics kurz: Run first, check afterwards: loops with at least one pass. @@ -16708,7 +16716,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] } until (condition); > A semicolon follows the condition. ::: -`,j4=`--- +`,_4=`--- titel: For loop bereich: Basics kurz: Count a fixed number of passes with Init, Condition and Step. @@ -18527,7 +18535,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] an error message > parseInt turns the text into a number. After that Java calculates as usual. ::: -`,D4=`--- +`,M4=`--- titel: Call and break bereich: Basics kurz: Split big tasks into subprograms and leave loops early. @@ -19009,7 +19017,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] return > void means “empty”: the method does something but returns no value. ::: -`,M4=`--- +`,Z4=`--- titel: Searching and sorting bereich: Basics kurz: Use playing cards to understand how linear search, binary search and bubble sort work, and why some methods are much faster. @@ -19360,7 +19368,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] A while loop cannot go through arrays. > The card can appear several times. That is why you go through all cards to the end. ::: -`,B4=`--- +`,D4=`--- titel: Structure chart and code bereich: From structure chart to code kurz: All elements in Java at a glance, generate code, write Java in the Code area, run it and find mistakes. @@ -19832,7 +19840,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] Line 3 runs next. > A breakpoint is a round red dot, and the next line is yellow. A red line number shows a syntax error or a runtime error. ::: -`,Z4=`--- +`,B4=`--- titel: Python and JavaScript bereich: From structure chart to code kurz: Generate Python and JavaScript code from the structure chart and run JavaScript straight in the browser. @@ -21099,7 +21107,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can = record -> a line with values = separator -> separates the columns, often ; ::: -`,F4=`--- +`,J4=`--- titel: Data as JSON bereich: Files kurz: Understand JSON files, get values out with indexOf and substring, and write JSON yourself. @@ -21324,7 +21332,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can = [ ] -> a list = : -> separates key and value ::: -`,J4=`--- +`,F4=`--- titel: Comparing formats bereich: Files kurz: Compare the same data as txt, CSV and JSON, choose the right format and convert a file into another format. @@ -22560,7 +22568,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can = JButton -> button = GridLayout -> arrangement in a grid ::: -`,q4=`--- +`,Q4=`--- titel: Click counter with reset bereich: Windows with Swing kurz: Two buttons change the same number: create a variable for the whole class. @@ -22792,7 +22800,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] It puts the window in the middle of the screen. - [ ] It makes the font bigger. ::: -`,Q4=`--- +`,q4=`--- titel: A traffic light with colours bereich: Windows with Swing kurz: Set background colours and switch a traffic light on with a state variable. @@ -23339,7 +23347,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] points >= 0 || points <= 100 > A number can't be smaller than 0 and bigger than 100 at the same time, so you need or. ::: -`,$4=`--- +`,Y4=`--- titel: A calculator bereich: Windows with Swing kurz: Two columns with GridLayout, four arithmetic buttons and catching division by 0. @@ -23610,7 +23618,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - [ ] Column by column, starting top to bottom on the far left - [ ] Randomly ::: -`,Y4=`--- +`,$4=`--- titel: Guess the number bereich: Windows with Swing kurz: A game with a random number, a counter for the guesses and a button that switches itself off at the end. @@ -27306,6 +27314,10 @@ No fim aparece **Simulação terminada.** Se algo correr mal, a simulação para Num **teste de secretária** és tu o computador. Percorres o estrutograma com papel e caneta e anotas os valores das variáveis depois de cada passo. O melhor é fazer uma tabela: uma coluna para o passo, uma para cada variável e uma para a saída. +::: grafik l07-schreibtischtest-pt.svg +Basta uma folha de papel e uma caneta: depois de cada passo escreves os novos valores numa nova linha. +::: + Para o diagrama de cima, a tabela fica assim: | Passo | a | b | aux | Saída | @@ -33188,7 +33200,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = println(texto) -> escreve uma linha = close() -> fecha o ficheiro ::: -`,_v=`--- +`,jv=`--- titel: Linha a linha com BufferedReader bereich: Ficheiros kurz: Ler com BufferedReader e readLine até chegar null, e ler um ficheiro inteiro de uma vez com Files. @@ -33444,7 +33456,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = Files.readString -> ficheiros pequenos de uma vez = Scanner -> ler números e palavras ::: -`,jv=`--- +`,_v=`--- titel: Tabelas em CSV bereich: Ficheiros kurz: Ler uma tabela num ficheiro CSV, dividir cada linha com split e fazer contas com os números. @@ -34506,7 +34518,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ - [ ] No botão aparece “Fui clicado”. > O que deve acontecer com um clique aprendes na próxima lição. ::: -`,Dv=`--- +`,Mv=`--- titel: O botão reage bereich: Janelas com Swing kurz: Com um ActionListener decides o que acontece com um clique. @@ -34848,7 +34860,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = setText -> mudar o texto = setVisible(true) -> mostrar a janela ::: -`,Mv=`--- +`,Zv=`--- titel: Duplicar um número na janela bereich: Janelas com Swing kurz: Arrumar uma etiqueta, um campo de texto e um botão com um GridLayout e calcular com o texto do campo de texto. @@ -35129,7 +35141,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = JButton -> botão = GridLayout -> arrumação em grelha ::: -`,Bv=`--- +`,Dv=`--- titel: Contador de cliques com reset bereich: Janelas com Swing kurz: Dois botões alteram o mesmo número: criar uma variável para a classe toda. @@ -35361,7 +35373,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ - [ ] Põe a janela no meio do ecrã. - [ ] Aumenta a letra. ::: -`,Zv=`--- +`,Bv=`--- titel: Um semáforo com cores bereich: Janelas com Swing kurz: Definir cores de fundo e mudar um semáforo com uma variável de estado. @@ -36639,7 +36651,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = ActionEvent -> o evento e com a informação sobre o clique = JPanel -> uma área com o seu próprio layout ::: -`,Fv=`--- +`,Jv=`--- titel: Classes internas bereich: Janelas com Swing kurz: Escrever um ouvinte como classe interna com nome, como classe anónima e como lambda, e saber quem vê o quê. @@ -36871,7 +36883,7 @@ Avalia-te com honestidade em cada ponto: ☂️ ainda não, ⛅ em parte, ☀️ = new ActionListener() { … } -> classe anónima = a seta depois de e -> lambda ::: -`,Jv=`--- +`,Fv=`--- titel: Dois separadores bereich: Janelas com Swing kurz: Construir uma janela com dois separadores, levar dados de um separador para o outro e guardar a lista num ficheiro de texto. @@ -38015,7 +38027,7 @@ tipp: Öffne die Übung im Editor und baue dort das Hauptprogramm mit dem Aufruf lösung: aufgabe-alter-haupt-loesung.visustruct unterprogramm: aufgabe-alter-unterprogramm-loesung.visustruct ::: -`,qv=`--- +`,Qv=`--- titel: Ballwurf auswerten nach: 25 stufe: 2 @@ -38044,7 +38056,7 @@ tipp: Du brauchst vier Variablen vor der Schleife: die Anzahl, die Summe als \`d tipp: In der Schleife: \`String[] teile = zeile.split(";");\` und \`int weite = Integer.parseInt(teile[1]);\`. Ist \`weite > besteWeite\`, merkst du dir Weite und Namen. Zum Speichern: \`PrintWriter aus = new PrintWriter("sieger.txt");\`, \`aus.println(…)\` und \`aus.close();\`. lösung: aufgabe-ballwurf-loesung.visustruct ::: -`,Qv=`--- +`,qv=`--- titel: Bestenliste nach: 19 stufe: 2 @@ -38120,7 +38132,7 @@ tipp: Fang mit \`String binaer = "";\` an. Die Schleife läuft mit \`while (zahl tipp: Im Rumpf: \`int rest = zahl % 2;\`, dann \`binaer = rest + binaer;\` und \`zahl = zahl / 2;\`. Weil \`binaer\` ein String ist, hängt \`+\` den Rest vorne an. lösung: aufgabe-binaer-loesung.visustruct ::: -`,$v=`--- +`,Yv=`--- titel: Caesar-Verschlüsselung nach: 17 stufe: 3 @@ -38254,7 +38266,7 @@ lösung: aufgabe-caesar-entschluesseln-loesung.visustruct ::: angeberwissen Sicher ist Caesar leider nicht. Es gibt nur 25 Schlüssel, die kann man in ein paar Minuten alle ausprobieren. Noch schneller geht es mit einem Trick: Im Deutschen ist E der häufigste Buchstabe. Kommt im Geheimtext H am häufigsten vor, war der Schlüssel wohl 3. Im Internet gibt es übrigens ROT13, das ist Caesar mit dem Schlüssel 13. Zweimal ROT13 ergibt wieder den Klartext, weil 13 + 13 = 26. ::: -`,Yv=`--- +`,$v=`--- titel: Collatz-Folge nach: 11 stufe: 2 @@ -39471,7 +39483,7 @@ tipp: Two \`for\` loops inside each other: the row outside, the column inside, b tipp: \`if (sea[row][column]) { System.out.println(columns[column] + (row + 1)); }\`. The brackets around \`row + 1\` make Java calculate first. lösung: aufgabe-schiffe-loesung.visustruct ::: -`,_y=`--- +`,jy=`--- titel: Menu nach: 10 stufe: 1 @@ -39507,7 +39519,7 @@ tipp: In Java this is a switch: \`switch (pick) { … }\`. tipp: Every case looks like this: \`case 1 -> { System.out.println("…"); }\`. All other numbers go to \`default -> { … }\`. lösung: aufgabe-speisekarte-loesung.visustruct ::: -`,jy=`--- +`,_y=`--- titel: Add up nach: 2 stufe: 1 @@ -39666,7 +39678,7 @@ tipp: Skip the header line. In the loop, split every line with \`split(";")\`: \ tipp: Compare texts with \`answer.equals(parts[1])\`, not with \`==\`. Count along with \`int right = 0;\` and \`int count = 0;\` before the loop. lösung: aufgabe-vokabeln-loesung.visustruct ::: -`,Dy=`--- +`,My=`--- titel: Adult? nach: 8 stufe: 1 @@ -39702,7 +39714,7 @@ tipp: Read the age with \`int age = scanner.nextInt();\`. tipp: \`if (age >= 18) { … } else { … }\`, with a \`System.out.println(…)\` in each branch. lösung: aufgabe-volljaehrig-loesung.visustruct ::: -`,My=`--- +`,Zy=`--- titel: Rolling dice with MVC nach: 40 stufe: 3 @@ -39740,7 +39752,7 @@ Extra: a button **New game** resets everything. The method for that belongs in t ::: ludwig Remember the rule from lesson 40: there isn't a single \`JLabel\` in the model. If you change the font size when rolling, that belongs in the view. ::: -`,By=`--- +`,Dy=`--- titel: Double a number nach: 2 stufe: 1 @@ -39756,7 +39768,7 @@ tipp: Doubling means: times 2. You store the result in the same variable again. tipp: \`number = number * 2\` calculates with the old value and stores the result in \`number\` again. You join text and a variable with \`+\`. lösung: aufgabe-verdoppeln-loesung.visustruct ::: -`,Zy=`--- +`,By=`--- titel: Idade num subprograma nach: 18 stufe: 2 @@ -40016,7 +40028,7 @@ lösung: aufgabe-caesar-entschluesseln-loesung.visustruct ::: angeberwissen Infelizmente, a cifra de César não é segura. Há apenas 25 chaves, e é possível experimentá-las todas em poucos minutos. Com um truque é ainda mais rápido: em português, as letras mais frequentes são o A e o E. Se no texto cifrado o H aparecer muitas vezes, a chave foi provavelmente 3. Na internet existe ainda o ROT13, que é a cifra de César com a chave 13. Aplicar ROT13 duas vezes devolve o texto simples, porque 13 + 13 = 26. ::: -`,Fy=`--- +`,Jy=`--- titel: Sequência de Collatz nach: 11 stufe: 2 @@ -40060,7 +40072,7 @@ lösung: aufgabe-collatz-loesung.visustruct ::: angeberwissen Esta tarefa pode tornar-te rico! O matemático Paul Erdős ofereceu 500 dólares por uma demonstração. Em 2021, a empresa japonesa Bakuage juntou bastante mais: 120 milhões de ienes, na altura cerca de um milhão de dólares, por uma demonstração ou um contraexemplo. Ainda ninguém foi buscar o dinheiro. Já agora, o enigma foi inventado pelo matemático alemão Lothar Collatz em 1937. Vou já começar a fazer contas; com tanto dinheiro compra-se muito feno. ::: -`,Jy=`--- +`,Fy=`--- titel: Conversor de unidades nach: 35 stufe: 2 @@ -40275,7 +40287,7 @@ tipp: \`for (int i = 0; i < quantidade; i++)\` lê exatamente as notas que foram tipp: Divide com \`double media = soma * 1.0 / quantidade;\`. Sem \`* 1.0\`, o Java divide dois \`int\` como inteiros, e 1.5 passa a 1. lösung: aufgabe-durchschnitt-loesung.visustruct ::: -`,qy=`--- +`,Qy=`--- titel: Verificar o PIN nach: 12 stufe: 2 @@ -40315,7 +40327,7 @@ tipp: \`do { … } while (…);\` pergunta pelo menos uma vez. Depois do \`while tipp: Cria antes \`int pin = 0;\` e \`int tentativas = 0;\`. No ciclo: \`int entrada = scanner.nextInt();\`, \`pin = entrada;\` e \`tentativas++;\`. A condição é \`pin != 1234 && tentativas < 3\`. lösung: aufgabe-pin-java-loesung.visustruct ::: -`,Qy=`--- +`,qy=`--- titel: Batalha naval nach: 16 stufe: 2 @@ -40388,7 +40400,7 @@ tipp: Em Java isto é uma seleção com \`switch (prato) { … }\`. tipp: Cada caso é assim: \`case 1 -> { System.out.println("…"); }\`. Para todos os outros números há \`default -> { … }\`. lösung: aufgabe-speisekarte-loesung.visustruct ::: -`,$y=`--- +`,Yy=`--- titel: Somar nach: 2 stufe: 1 @@ -40404,7 +40416,7 @@ tipp: Precisas de três variáveis: duas para os números e uma para o resultado tipp: Defines uma variável com uma instrução como \`int numero1 = 4\`. Na saída escreves o nome da variável sem aspas. lösung: aufgabe-summe-loesung.visustruct ::: -`,Yy=`--- +`,$y=`--- titel: Sortear quem limpa o quadro nach: 15 stufe: 2 @@ -43016,7 +43028,7 @@ Mit **🔌 mBot2** neben „Simulation starten“ verbindest du den echten Robot ### Ohne Kabel fahren Mit **⬆ Übertragen** speicherst du dein Programm fest auf dem mBot2. Danach Kabel ab, mBot2 an den Start und **Taste A** drücken: Er fährt dein Programm allein. Es bleibt gespeichert, bis du ein neues überträgst. Eingaben mit der Tastatur gehen am mBot2 nicht. -`,_9=`--- +`,j9=`--- titel: The mBot2 bereich: VisuBot kurz: Get to know the robot you are about to program. @@ -43348,7 +43360,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can connect the real mBot2 with USB-C and disconnect it again. → Connecting the real mBot2 - I can check that all sensors and actuators work. → Testing the mBot2 ::: -`,j9=`--- +`,_9=`--- titel: The square bereich: VisuBot kurz: From a long structure chart to a triple nested loop. @@ -43751,7 +43763,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can put one branch inside another. → Keep your distance in the structure chart - I can write a while loop with the distance in Java. → Now in Java ::: -`,D9=`--- +`,M9=`--- titel: The line sensor bereich: VisuBot kurz: Detect dark lines on the floor and don't fall off the table. @@ -43845,7 +43857,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can drive up to a line. → Turn round at the edge in the structure chart - I can count steps with a variable in Java. → Now in Java: there and back ::: -`,M9=`--- +`,Z9=`--- titel: Recognising colours bereich: VisuBot kurz: The quad RGB sensor tells you which colour the mBot2 is standing on. @@ -43935,7 +43947,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can turn a condition round with \`!\`. → Drive to red in the structure chart - I can put a branch inside a loop. → Now in Java: beep on green ::: -`,B9=`--- +`,D9=`--- titel: Case selection with colours bereich: VisuBot kurz: Do something different for each colour or line, with one case selection instead of many branches. @@ -44057,7 +44069,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can write a case selection with numbers in Java. → Now in Java: line patterns - I can read a number and print something depending on its value. → Now without the robot: grades in words ::: -`,Z9=`--- +`,B9=`--- titel: Buttons and joystick bereich: VisuBot kurz: The mBot2 waits for you and can be remote controlled. @@ -44476,7 +44488,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can show colours one after the other with pauses. → Traffic light in the structure chart - I can make the LEDs blink in Java. → Now in Java: blue light ::: -`,F9=`--- +`,J9=`--- titel: Single LEDs bereich: VisuBot kurz: Each of the five LEDs gets its own colour, all the way to a running light. @@ -44563,7 +44575,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can make single LEDs light up in different colours. → Three lights in the structogram - I can build a running light with a loop. → Now in Java: running light ::: -`,J9=`--- +`,F9=`--- titel: The speaker bereich: VisuBot kurz: Tones, a scale and a siren. @@ -45050,7 +45062,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can drive until a sensor reports something. → Full speed to the wall in the structure chart - I can write a line follower in Java. → Now in Java: line follower ::: -`,q9=`--- +`,Q9=`--- titel: Stopwatch and battery bereich: VisuBot kurz: Measure time and keep an eye on the battery. @@ -45141,7 +45153,7 @@ Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can - I can drive for a certain time. → Driving two seconds in the structure chart - I can show the battery level. → Now in Java: battery display ::: -`,Q9=`--- +`,q9=`--- titel: Your own methods bereich: VisuBot kurz: Write and call your own commands with parameters and return values. @@ -45395,7 +45407,7 @@ With **🔌 mBot2** next to "Start simulation" you connect the real robot with t ### Driving without a cable With **⬆ Upload** you save your program on the mBot2. Then unplug the cable, put the mBot2 at the start and press **button A**: it drives your program on its own. It stays saved until you upload a new one. Keyboard inputs do not work on the mBot2. -`,$9=`--- +`,Y9=`--- titel: Die Alarmanlage nach: 16 stufe: 2 @@ -45414,7 +45426,7 @@ tipp: Außen steht eine While-Schleife mit \`!mbot.isButtonB()\`. Darin eine Ver tipp: Die Bedingung der Verzweigung: \`mbot.getDistance() < 20 || mbot.getLoudness() > 60\`. Im Ja-Zweig \`mbot.setLed(255, 0, 0)\` und \`mbot.playTone(880, 200)\`, im Nein-Zweig \`mbot.ledOff()\`. lösung: vb-alarmanlage-loesung.visustruct ::: -`,Y9=`--- +`,$9=`--- titel: Labyrinth mit Ausgängen nach: 5 stufe: 3 @@ -45932,7 +45944,7 @@ tipp: In each pass the mBot2 drives one square forward and then looks left and r tipp: A loop that drives first and checks afterwards fits here. It keeps going as long as at least 20 cm are free on the left **or** on the right: \`left >= 20 || right >= 20\`. lösung: vb-tunnel-loesung.visustruct ::: -`,_w=`--- +`,jw=`--- titel: Clover in the forest nach: 5 stufe: 2 @@ -45951,7 +45963,7 @@ tipp: As in "Drive to the goal", a loop on the outside runs until the line senso tipp: Around a tree: turn left, one square forward, turn right, two squares forward, turn right, one square forward, turn left. lösung: vb-wald-loesung.visustruct ::: -`,jw=` +`,_w=` 111;117;116;112;117;116;58;32;34;87;105;108;108;107;111;109;109;101;110;34; @@ -46137,7 +46149,7 @@ lösung: vb-wald-loesung.visustruct -`,Dw=` +`,Mw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;71;97;110;122;101;32;90;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -46163,7 +46175,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98;105;110;97;101;114; -`,Mw=` +`,Zw=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; @@ -46217,13 +46229,13 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;103;101;104;101;105;109; -`,Bw=` +`,Dw=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; -`,Zw=` +`,Bw=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;101;108;99;104;101;115;32;87;111;114;116;32;40;110;117;114;32;71;114;111;223;98;117;99;104;115;116;97;98;101;110;41;63;34; @@ -46386,7 +46398,7 @@ lösung: vb-wald-loesung.visustruct -`,Fw=` +`,Jw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;90;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -46405,7 +46417,7 @@ lösung: vb-wald-loesung.visustruct -`,Jw=` +`,Fw=` 99;111;110;115;116;32;100;111;117;98;108;101;32;77;87;83;84;32;61;32;48;46;49;57; @@ -46596,7 +46608,7 @@ lösung: vb-wald-loesung.visustruct -`,qw=` +`,Qw=` 98;111;111;108;101;97;110;91;93;91;93;32;109;101;101;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -46623,7 +46635,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;91;93;32;115;112;97;108;116;101;110;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,Qw=` +`,qw=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;109;101;114;32;34;87;101;108;99;104;101;115;32;71;101;114;105;99;104;116;63;32;40;49;44;32;50;32;111;100;101;114;32;51;41;34; @@ -46667,7 +46679,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,$w=` +`,Yw=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;110;101;119;32;83;116;114;105;110;103;91;53;93; @@ -46689,7 +46701,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;97;102;101;108;100;105;101;110;115;116;58;32;34;32;43;32;110;97;109;101;110;91;110;117;109;109;101;114;32;45;32;49;93; -`,Yw=` +`,$w=` 105;110;116;32;122;97;104;108;32;61;32;52; @@ -47624,7 +47636,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;91;93;32;99;111;108;117;109;110;115;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,_5=` +`,j5=` 105;110;112;117;116;58;32;105;110;116;32;112;105;99;107;32;34;87;104;105;99;104;32;100;105;115;104;63;32;40;49;44;32;50;32;111;114;32;51;41;34; @@ -47653,7 +47665,7 @@ lösung: vb-wald-loesung.visustruct -`,j5=` +`,_5=` 105;110;116;32;110;117;109;98;101;114;49;32;61;32;52; @@ -47786,7 +47798,7 @@ lösung: vb-wald-loesung.visustruct -`,D5=` +`,M5=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;119;111;114;100;115;46;99;115;118;34;41;41; @@ -47846,7 +47858,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;114;105;103;104;116;32;43;32;34;32;111;102;32;34;32;43;32;99;111;117;110;116;32;43;32;34;32;114;105;103;104;116;34; -`,M5=` +`,Z5=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;119;111;114;100;115;46;99;115;118;34;41;41; @@ -47855,7 +47867,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,B5=` +`,D5=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -47874,7 +47886,7 @@ lösung: vb-wald-loesung.visustruct -`,Z5=` +`,B5=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -47985,7 +47997,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;183;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;116;97;98;108;101;91;97;32;45;32;49;93;91;98;32;45;32;49;93; -`,F5=` +`,J5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -48033,7 +48045,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;114;101;101;58;32;34;32;43;32;102;114;101;101; -`,J5=` +`,F5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -48172,7 +48184,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;111;119;32;49;44;32;115;101;97;116;32;50;32;115;111;108;100;63;32;34;32;43;32;115;101;97;116;115;91;49;93;91;50;93; -`,q5=` +`,Q5=` 105;110;116;32;110;117;109;98;101;114;32;61;32;52; @@ -48187,7 +48199,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;115;117;108;116;58;32;34;32;43;32;114;101;115;117;108;116; -`,Q5=` +`,q5=` 105;110;116;32;110;117;109;98;101;114;32;61;32;52; @@ -48217,7 +48229,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,$5=` +`,Y5=` 105;110;116;32;115;101;99;111;110;100;115;32;61;32;50;48;48; @@ -48232,7 +48244,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,Y5=` +`,$5=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -48679,7 +48691,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;114;111;100;117;99;116;58;32;34;32;43;32;112;114;111;100;117;99;116; -`,_z=` +`,jz=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -48698,7 +48710,7 @@ lösung: vb-wald-loesung.visustruct -`,jz=` +`,_z=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;78;117;109;98;101;114;63;34; @@ -48790,7 +48802,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;105;110;116;115;58;32;34;32;43;32;112;111;105;110;116;115; -`,Dz=` +`,Mz=` 105;110;116;32;112;111;105;110;116;115;32;61;32;49;48; @@ -48805,7 +48817,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;105;110;116;115;58;32;34;32;43;32;112;111;105;110;116;115; -`,Mz=` +`,Zz=` 105;110;116;32;112;114;105;99;101;32;61;32;56; @@ -48823,7 +48835,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,Bz=` +`,Dz=` 105;110;116;32;112;114;105;99;101;32;61;32;56; @@ -48841,7 +48853,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,Zz=` +`,Bz=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -48942,7 +48954,7 @@ lösung: vb-wald-loesung.visustruct -`,Fz=` +`,Jz=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -48961,7 +48973,7 @@ lösung: vb-wald-loesung.visustruct -`,Jz=` +`,Fz=` 105;110;116;32;97;103;101;32;61;32;49;53; @@ -49056,7 +49068,7 @@ lösung: vb-wald-loesung.visustruct -`,qz=` +`,Qz=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;68;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -49075,7 +49087,7 @@ lösung: vb-wald-loesung.visustruct -`,Qz=` +`,qz=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;99;111;108;111;114;32;34;87;104;97;116;32;99;111;108;111;114;32;105;115;32;116;104;101;32;116;114;97;102;102;105;99;32;108;105;103;104;116;63;34; @@ -49133,7 +49145,7 @@ lösung: vb-wald-loesung.visustruct -`,$z=` +`,Yz=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;87;104;105;99;104;32;100;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -49152,7 +49164,7 @@ lösung: vb-wald-loesung.visustruct -`,Yz=` +`,$z=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;87;104;105;99;104;32;100;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -49873,7 +49885,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;89;111;117;114;32;103;114;97;100;101;58;32;34;32;43;32;103;114;97;100;101; -`,_6=` +`,j6=` 105;110;116;32;115;117;109;32;61;32;48; @@ -49896,7 +49908,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,j6=` +`,_6=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;83;116;97;114;116;32;110;117;109;98;101;114;34; @@ -49981,7 +49993,7 @@ lösung: vb-wald-loesung.visustruct -`,D6=` +`,M6=` 105;110;116;32;110;117;109;98;101;114;32;61;32;49; @@ -50001,7 +50013,7 @@ lösung: vb-wald-loesung.visustruct -`,M6=` +`,Z6=` 105;110;116;32;110;117;109;98;101;114;32;61;32;49; @@ -50021,7 +50033,7 @@ lösung: vb-wald-loesung.visustruct -`,B6=` +`,D6=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;110;117;109;98;101;114;63;34; @@ -50038,7 +50050,7 @@ lösung: vb-wald-loesung.visustruct -`,Z6=` +`,B6=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -50169,7 +50181,7 @@ lösung: vb-wald-loesung.visustruct -`,F6=` +`,J6=` 105;110;112;117;116;58;32;105;110;116;32;114;111;119;32;34;87;104;105;99;104;32;116;105;109;101;115;32;116;97;98;108;101;63;34; @@ -50185,7 +50197,7 @@ lösung: vb-wald-loesung.visustruct -`,J6=` +`,F6=` 105;110;116;32;104;101;105;103;104;116;32;61;32;48; @@ -50284,7 +50296,7 @@ lösung: vb-wald-loesung.visustruct -`,q6=` +`,Q6=` 105;110;116;91;93;32;118;97;108;117;101;115;32;61;32;123;52;44;32;56;44;32;49;53;44;32;49;54;44;32;50;51;44;32;52;50;125; @@ -50299,7 +50311,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;118;97;108;117;101;115;46;108;101;110;103;116;104; -`,Q6=` +`,q6=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -50363,7 +50375,7 @@ lösung: vb-wald-loesung.visustruct -`,$6=` +`,Y6=` 105;110;116;32;105;32;61;32;49; @@ -50386,7 +50398,7 @@ lösung: vb-wald-loesung.visustruct -`,Y6=` +`,$6=` 105;110;116;32;105;32;61;32;49; @@ -51014,7 +51026,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,_I=` +`,jI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -51036,7 +51048,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,jI=` +`,_I=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -51150,7 +51162,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;101;116;116;101;114;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;101;116;116;101;114;46;116;120;116;34;41;41; -`,DI=` +`,MI=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;105;114;115;116;32;34;70;105;114;115;116;32;110;97;109;101;63;34; @@ -51162,7 +51174,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,MI=` +`,ZI=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;105;114;115;116;32;34;70;105;114;115;116;32;110;97;109;101;63;34; @@ -51174,7 +51186,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;34; -`,BI=` +`,DI=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -51183,7 +51195,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;32;104;97;115;32;34;32;43;32;110;97;109;101;46;108;101;110;103;116;104;40;41;32;43;32;34;32;108;101;116;116;101;114;115;34; -`,ZI=` +`,BI=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -51293,7 +51305,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;114;105;101;115;58;32;34;32;43;32;116;114;105;101;115; -`,FI=` +`,JI=` 105;110;116;32;116;114;105;101;115;32;61;32;48; @@ -51326,7 +51338,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;114;105;101;115;58;32;34;32;43;32;116;114;105;101;115; -`,JI=` +`,FI=` 105;110;116;32;115;117;109;32;61;32;48; @@ -51484,7 +51496,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,qI=` +`,QI=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -51519,7 +51531,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,QI=` +`,qI=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -51589,7 +51601,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;117;110;116;58;32;34;32;43;32;99;111;117;110;116; -`,$I=` +`,YI=` 111;117;116;112;117;116;58;32;34;71;111;111;100;32;109;111;114;110;105;110;103;34; @@ -51598,7 +51610,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;100;97;121;32;119;101;32;108;101;97;114;110;32;115;116;114;117;99;116;117;114;101;32;99;104;97;114;116;115;46;34; -`,YI=` +`,$I=` 111;117;116;112;117;116;58;32;34;72;101;108;108;111;32;87;111;114;108;100;34; @@ -52440,7 +52452,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;109;112;97;114;105;115;111;110;115;58;32;34;32;43;32;99;111;109;112;97;114;105;115;111;110;115; -`,_7=` +`,j7=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;55;44;32;51;44;32;49;48;44;32;53;44;32;50;125; @@ -52489,7 +52501,7 @@ lösung: vb-wald-loesung.visustruct -`,j7=` +`,_7=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -52647,7 +52659,7 @@ lösung: vb-wald-loesung.visustruct -`,D7=` +`,M7=` 105;110;116;32;110;117;109;98;101;114;32;61;32;53; @@ -52671,7 +52683,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;102;116;101;114;58;32;34;32;43;32;114;111;119;91;48;93;32;43;32;34;44;32;34;32;43;32;114;111;119;91;49;93; -`,M7=` +`,Z7=` 105;110;116;32;105;32;61;32;48; @@ -52684,7 +52696,7 @@ lösung: vb-wald-loesung.visustruct -`,B7=` +`,D7=` 120;32;61;32;120;32;42;32;50; @@ -52693,7 +52705,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;110;32;116;104;101;32;115;117;98;112;114;111;103;114;97;109;58;32;120;32;61;32;34;32;43;32;120; -`,Z7=` +`,B7=` 105;110;116;32;100;105;115;116;97;110;99;101;32;61;32;109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41; @@ -52803,7 +52815,7 @@ lösung: vb-wald-loesung.visustruct -`,F7=` +`,J7=` 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;72;101;108;108;111;33;34;41; @@ -52815,7 +52827,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;73;32;97;109;32;86;105;115;117;66;111;116;34;41; -`,J7=` +`,F7=` 105;110;116;32;110;117;109;98;101;114;32;61;32;48; @@ -52919,7 +52931,7 @@ lösung: vb-wald-loesung.visustruct -`,q7=` +`,Q7=` 109;98;111;116;46;108;101;100;40;48;41;46;115;101;116;67;111;108;111;114;40;34;114;101;100;34;41; @@ -52931,7 +52943,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;108;101;100;40;52;41;46;115;101;116;67;111;108;111;114;40;34;103;114;101;101;110;34;41; -`,Q7=` +`,q7=` 105;110;116;32;105;32;61;32;48; @@ -52975,7 +52987,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;80;97;114;107;101;100;33;34;41; -`,$7=` +`,Y7=` 83;116;114;105;110;103;91;93;32;99;111;108;111;117;114;115;32;61;32;123;34;114;101;100;34;44;32;34;121;101;108;108;111;119;34;44;32;34;103;114;101;101;110;34;44;32;34;98;108;117;101;34;44;32;34;112;117;114;112;108;101;34;125; @@ -52991,7 +53003,7 @@ lösung: vb-wald-loesung.visustruct -`,Y7=` +`,$7=` 109;98;111;116;46;103;101;116;67;111;108;111;114;40;41; @@ -53725,13 +53737,13 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,_k=` +`,jk=` 114;101;116;117;114;110;32;120;32;42;32;120; -`,jk=` +`,_k=` 83;116;114;105;110;103;32;119;111;114;100;32;61;32;34;76;117;100;119;105;103;34; @@ -53877,7 +53889,7 @@ lösung: vb-wald-loesung.visustruct 115;113;117;97;114;101;40;53;48;41; -`,Dk=` +`,Mk=` 105;110;116;32;105;32;61;32;48; @@ -53932,7 +53944,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41; -`,Mk=` +`,Zk=` 105;110;116;32;105;32;61;32;48; @@ -53948,7 +53960,7 @@ lösung: vb-wald-loesung.visustruct -`,Bk=` +`,Dk=` 105;110;116;32;105;32;61;32;48; @@ -53971,7 +53983,7 @@ lösung: vb-wald-loesung.visustruct -`,Zk=` +`,Bk=` 109;98;111;116;46;103;101;116;76;105;110;101;40;41;32;61;61;32;48; @@ -54083,7 +54095,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;102;111;114;119;97;114;100;40;51;48;41; -`,Fk=` +`,Jk=` 109;98;111;116;46;112;108;97;121;84;111;110;101;40;50;54;50;44;32;51;48;48;41; @@ -54101,7 +54113,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;112;108;97;121;84;111;110;101;40;51;57;50;44;32;51;48;48;41; -`,Jk=` +`,Fk=` 105;110;116;32;105;32;61;32;48; @@ -54246,7 +54258,7 @@ lösung: vb-wald-loesung.visustruct -`,qk=` +`,Qk=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;60;32;50;48; @@ -54262,7 +54274,7 @@ lösung: vb-wald-loesung.visustruct -`,Qk=` +`,qk=` 109;98;111;116;46;114;101;115;101;116;84;105;109;101;114;40;41; @@ -54294,7 +54306,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;78;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;78;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,$k=` +`,Yk=` 83;116;114;105;110;103;32;119;111;114;100;32;61;32;34;66;105;108;108;121;103;111;97;116;34; @@ -54333,7 +54345,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116; -`,Yk=` +`,$k=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;100;32;34;69;110;116;101;114;32;97;32;119;111;114;100;34; @@ -54949,7 +54961,7 @@ lösung: vb-wald-loesung.visustruct 103;117;116;104;97;98;101;110;32;61;32;103;117;116;104;97;98;101;110;32;45;32;112;114;101;105;115; -`,_8=` +`,j8=` 105;110;116;32;112;114;101;105;115;32;61;32;57; @@ -54964,7 +54976,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,j8=` +`,_8=` 105;110;116;32;115;116;117;101;99;107;101;32;61;32;56; @@ -55039,7 +55051,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;110;32;43;32;34;32;77;105;110;117;116;101;110;32;117;110;100;32;34;32;43;32;114;101;115;116;32;43;32;34;32;83;101;107;117;110;100;101;110;34; -`,D8=` +`,M8=` 105;110;116;32;108;97;101;110;103;101;32;61;32;53; @@ -55054,7 +55066,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;102;108;97;101;99;104;101; -`,M8=` +`,Z8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;97;109;101;32;34;87;105;101;32;104;101;105;223;116;32;100;117;63;34; @@ -55063,7 +55075,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;97;108;108;111;32;34;32;43;32;110;97;109;101;32;43;32;34;33;34; -`,B8=` +`,D8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -55078,7 +55090,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,Z8=` +`,B8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -55132,7 +55144,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;97;115;32;115;105;110;100;32;101;116;119;97;32;34;32;43;32;116;97;103;101;32;43;32;34;32;84;97;103;101;46;34; -`,F8=` +`,J8=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;120;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -55147,7 +55159,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;105;116;116;101;108;119;101;114;116;58;32;34;32;43;32;109;105;116;116;101;108; -`,J8=` +`,F8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -55246,7 +55258,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;117;110;107;116;101;58;32;34;32;43;32;112;117;110;107;116;101; -`,q8=` +`,Q8=` 105;110;116;32;112;117;110;107;116;101;32;61;32;48; @@ -55264,7 +55276,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;117;110;107;116;101;58;32;34;32;43;32;112;117;110;107;116;101; -`,Q8=` +`,q8=` 105;110;116;32;112;117;110;107;116;101;32;61;32;49;48; @@ -55294,7 +55306,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;117;110;107;116;101;58;32;34;32;43;32;112;117;110;107;116;101; -`,$8=` +`,Y8=` 105;110;116;32;112;114;101;105;115;32;61;32;56; @@ -55312,7 +55324,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,Y8=` +`,$8=` 105;110;116;32;112;114;101;105;115;32;61;32;56; @@ -55986,7 +55998,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,_S=` +`,jS=` 105;110;116;32;122;97;104;108;32;61;32;51; @@ -56003,7 +56015,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,jS=` +`,_S=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;70;97;107;117;108;116;228;116;32;118;111;110;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -56147,7 +56159,7 @@ lösung: vb-wald-loesung.visustruct -`,DS=` +`,MS=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;87;101;108;99;104;101;32;90;97;104;108;63;34; @@ -56176,7 +56188,7 @@ lösung: vb-wald-loesung.visustruct -`,MS=` +`,ZS=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;34; @@ -56199,7 +56211,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;99;104;114;105;116;116;101; -`,BS=` +`,DS=` 105;110;116;32;122;97;104;108;32;61;32;48; @@ -56216,7 +56228,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;97;110;107;101;33;34; -`,ZS=` +`,BS=` 105;110;116;32;105;32;61;32;49;48; @@ -56325,7 +56337,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,FS=` +`,JS=` 105;110;116;32;122;97;104;108;32;61;32;51; @@ -56345,7 +56357,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,JS=` +`,FS=` 105;110;116;32;110;111;116;101;32;61;32;48; @@ -56436,7 +56448,7 @@ lösung: vb-wald-loesung.visustruct -`,qS=` +`,QS=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -56453,7 +56465,7 @@ lösung: vb-wald-loesung.visustruct -`,QS=` +`,qS=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -56490,7 +56502,7 @@ lösung: vb-wald-loesung.visustruct -`,$S=` +`,YS=` 105;110;116;32;122;97;104;108;32;61;32;49; @@ -56510,7 +56522,7 @@ lösung: vb-wald-loesung.visustruct -`,YS=` +`,$S=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -57236,7 +57248,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,_T=` +`,jT=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;123;52;44;32;55;44;32;50;44;32;53;125; @@ -57258,7 +57270,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,jT=` +`,_T=` 105;110;116;91;93;32;110;111;116;101;110;32;61;32;123;50;44;32;51;44;32;49;44;32;52;125; @@ -57322,7 +57334,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;117;32;98;101;107;111;109;109;115;116;32;100;114;101;105;32;70;114;97;103;101;110;46;34; -`,DT=` +`,MT=` 122;101;105;103;101;83;117;109;109;101;40;51;44;32;52;41; @@ -57334,7 +57346,7 @@ lösung: vb-wald-loesung.visustruct 122;101;105;103;101;83;117;109;109;101;40;120;44;32;120;32;43;32;49;41; -`,MT=` +`,ZT=` 105;110;116;32;115;117;109;109;101;32;61;32;97;32;43;32;98; @@ -57343,7 +57355,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;43;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;115;117;109;109;101; -`,BT=` +`,DT=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;119;101;114;116;34; @@ -57366,7 +57378,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;111;115;33;34; -`,ZT=` +`,BT=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;119;101;114;116;34; @@ -57451,7 +57463,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;112;105;101;108;101;114;32;50;44;32;82;117;110;100;101;32;49;58;32;34;32;43;32;80;117;110;107;116;101;91;49;93;91;48;93; -`,FT=` +`,JT=` 105;110;116;91;93;91;93;32;112;117;110;107;116;101;32;61;32;123;123;51;44;32;53;125;44;32;123;52;44;32;49;125;44;32;123;50;44;32;50;125;125; @@ -57480,7 +57492,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,JT=` +`,FT=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -57601,7 +57613,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;102;97;107;117;108;116;97;101;116; -`,qT=` +`,QT=` 83;116;114;105;110;103;32;98;114;105;101;102;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;98;114;105;101;102;46;116;120;116;34;41;41; @@ -57633,7 +57645,7 @@ lösung: vb-wald-loesung.visustruct -`,QT=` +`,qT=` 83;116;114;105;110;103;32;98;114;105;101;102;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;98;114;105;101;102;46;116;120;116;34;41;41; @@ -57651,7 +57663,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,$T=` +`,YT=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;118;111;114;110;97;109;101;32;34;86;111;114;110;97;109;101;63;34; @@ -57663,7 +57675,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;34; -`,YT=` +`,$T=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -57700,7 +57712,7 @@ lösung: vb-wald-loesung.visustruct -`,e_=` +`,ej=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -57729,7 +57741,7 @@ lösung: vb-wald-loesung.visustruct -`,t_=` +`,tj=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;119;101;114;116;63;34; @@ -57749,7 +57761,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;110;100;101;34; -`,n_=` +`,nj=` 105;110;116;32;118;101;114;115;117;99;104;101;32;61;32;48; @@ -57782,7 +57794,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;115;117;99;104;101;58;32;34;32;43;32;118;101;114;115;117;99;104;101; -`,i_=` +`,ij=` 105;110;116;32;118;101;114;115;117;99;104;101;32;61;32;48; @@ -57815,7 +57827,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;115;117;99;104;101;58;32;34;32;43;32;118;101;114;115;117;99;104;101; -`,a_=` +`,aj=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -57857,7 +57869,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;115;117;109;109;101; -`,s_=` +`,sj=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -57879,7 +57891,7 @@ lösung: vb-wald-loesung.visustruct -`,r_=` +`,rj=` 105;110;112;117;116;58;32;105;110;116;32;103;114;101;110;122;101;32;34;66;105;115;32;119;111;104;105;110;63;34; @@ -57895,7 +57907,7 @@ lösung: vb-wald-loesung.visustruct -`,o_=` +`,oj=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -57934,7 +57946,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,l_=` +`,lj=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -57973,7 +57985,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,u_=` +`,uj=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -58008,7 +58020,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,m_=` +`,mj=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -58043,7 +58055,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,c_=` +`,cj=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -58078,7 +58090,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;58;32;34;32;43;32;97;110;122;97;104;108; -`,d_=` +`,dj=` 111;117;116;112;117;116;58;32;34;71;117;116;101;110;32;77;111;114;103;101;110;34; @@ -58087,13 +58099,13 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;117;116;101;32;108;101;114;110;101;110;32;119;105;114;32;83;116;114;117;107;116;111;103;114;97;109;109;101;46;34; -`,h_=` +`,hj=` 111;117;116;112;117;116;58;32;34;72;97;108;108;111;32;87;101;108;116;34; -`,g_=` +`,gj=` 111;117;116;112;117;116;58;32;34;72;97;108;108;111;34; @@ -58102,7 +58114,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;99;104;32;108;101;114;110;101;32;83;116;114;117;107;116;111;103;114;97;109;109;101;34; -`,p_=` +`,pj=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -58122,7 +58134,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,f_=` +`,fj=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -58163,7 +58175,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108;32;43;32;34;32;90;101;105;108;101;110;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,x_=` +`,xj=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -58172,7 +58184,7 @@ lösung: vb-wald-loesung.visustruct 80;114;105;110;116;87;114;105;116;101;114;32;97;117;115;32;61;32;110;101;119;32;80;114;105;110;116;87;114;105;116;101;114;40;34;101;105;110;107;97;117;102;45;110;101;117;46;116;120;116;34;41; -`,b_=` +`,bj=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -58198,13 +58210,13 @@ lösung: vb-wald-loesung.visustruct 100;97;116;101;105;46;99;108;111;115;101;40;41; -`,v_=` +`,vj=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; -`,y_=` +`,yj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -58243,7 +58255,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;117;99;104;115;58;32;34;32;43;32;97;110;122;97;104;108; -`,w_=` +`,wj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -58252,7 +58264,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,z_=` +`,zj=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -58287,7 +58299,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;228;110;103;115;116;101;114;32;69;105;110;116;114;97;103;58;32;34;32;43;32;108;97;101;110;103;115;116;101;114; -`,I_=` +`,Ij=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -58296,7 +58308,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;91;93;32;122;101;105;108;101;110;32;61;32;116;101;120;116;46;115;112;108;105;116;40;34;92;110;34;41; -`,k_=` +`,kj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -58350,7 +58362,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;66;101;115;116;101;32;78;111;116;101;32;105;110;32;69;110;103;108;105;115;99;104;58;32;34;32;43;32;98;101;115;116;101;114;78;97;109;101;32;43;32;34;32;40;34;32;43;32;98;101;115;116;101;78;111;116;101;32;43;32;34;41;34; -`,S_=` +`,Sj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -58359,7 +58371,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,T_=` +`,Tj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -58400,7 +58412,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;99;104;110;105;116;116;32;77;97;116;104;101;58;32;34;32;43;32;115;117;109;109;101;32;47;32;97;110;122;97;104;108; -`,__=` +`,jj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -58409,7 +58421,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,j_=` +`,_j=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -58448,7 +58460,7 @@ lösung: vb-wald-loesung.visustruct 108;101;115;101;114;46;99;108;111;115;101;40;41; -`,C_=` +`,Cj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -58457,7 +58469,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,A_=` +`,Aj=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;117;99;104;115;34;125; @@ -58507,7 +58519,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;110;46;108;101;110;103;116;104;32;43;32;34;32;69;105;110;116;114;228;103;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,P_=` +`,Pj=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;117;99;104;115;34;125; @@ -58525,7 +58537,7 @@ lösung: vb-wald-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,O_=` +`,Oj=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -58578,7 +58590,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;40;122;101;105;108;101;110;46;108;101;110;103;116;104;32;45;32;49;41;32;43;32;34;32;84;105;101;114;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,D_=` +`,Mj=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -58599,7 +58611,7 @@ lösung: vb-wald-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,M_=` +`,Zj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -58643,7 +58655,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108;32;43;32;34;32;83;228;116;122;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,B_=` +`,Dj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -58664,7 +58676,7 @@ lösung: vb-wald-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,Z_=` +`,Bj=` 111;117;116;112;117;116;58;32;34;66;101;109;45;118;105;110;100;111;34; @@ -58676,7 +58688,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;100;101;117;115;34; -`,L_=` +`,Lj=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -58695,7 +58707,7 @@ lösung: vb-wald-loesung.visustruct -`,W_=` +`,Wj=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;97;110;99;97;109;101;110;116;111;46;99;115;118;34;41;41; @@ -58776,7 +58788,7 @@ lösung: vb-wald-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,E_=` +`,Ej=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;97;110;99;97;109;101;110;116;111;46;99;115;118;34;41;41; @@ -58785,7 +58797,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,N_=` +`,Nj=` 105;110;116;91;93;32;112;111;110;116;111;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -58850,7 +58862,7 @@ lösung: vb-wald-loesung.visustruct -`,F_=` +`,Jj=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;32;105;110;116;101;105;114;111;34; @@ -58876,7 +58888,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98;105;110;97;114;105;111; -`,J_=` +`,Fj=` 99;104;97;114;91;93;32;97;108;102;97;98;101;116;111;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; @@ -58930,13 +58942,13 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;103;114;101;100;111; -`,R_=` +`,Rj=` 99;104;97;114;91;93;32;97;108;102;97;98;101;116;111;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; -`,G_=` +`,Gj=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;34;81;117;101;32;112;97;108;97;118;114;97;32;40;115;243;32;109;97;105;250;115;99;117;108;97;115;41;63;34; @@ -58967,7 +58979,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;103;114;101;100;111; -`,H_=` +`,Hj=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;101;103;114;101;100;111;32;34;81;117;97;108;32;233;32;111;32;116;101;120;116;111;32;99;105;102;114;97;100;111;63;34; @@ -58998,7 +59010,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116;111; -`,V_=` +`,Vj=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;32;105;110;105;99;105;97;108;34; @@ -59034,7 +59046,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;115;115;111;115;58;32;34;32;43;32;112;97;115;115;111;115; -`,q_=` +`,Qj=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;97;115;32;110;111;116;97;115;63;34; @@ -59062,7 +59074,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;101;100;105;97; -`,Q_=` +`,qj=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;110;250;109;101;114;111;115;63;34; @@ -59099,7 +59111,7 @@ lösung: vb-wald-loesung.visustruct -`,U_=` +`,Uj=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;34; @@ -59118,7 +59130,7 @@ lösung: vb-wald-loesung.visustruct -`,$_=` +`,Yj=` 99;111;110;115;116;32;100;111;117;98;108;101;32;73;86;65;32;61;32;48;46;50;51; @@ -59139,7 +59151,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;112;114;101;99;111;67;111;109;73;118;97; -`,Y_=` +`,$j=` 105;110;116;32;112;105;110;32;61;32;48; @@ -59175,7 +59187,7 @@ lösung: vb-wald-loesung.visustruct -`,X_=` +`,Xj=` 99;111;110;115;116;32;105;110;116;32;80;73;78;32;61;32;49;50;51;52; @@ -59211,7 +59223,7 @@ lösung: vb-wald-loesung.visustruct -`,K_=` +`,Kj=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;49;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -59255,7 +59267,7 @@ lösung: vb-wald-loesung.visustruct -`,ej=` +`,e_=` 98;111;111;108;101;97;110;91;93;91;93;32;109;97;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -59309,7 +59321,7 @@ lösung: vb-wald-loesung.visustruct -`,tj=` +`,t_=` 98;111;111;108;101;97;110;91;93;91;93;32;109;97;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -59336,7 +59348,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;91;93;32;99;111;108;117;110;97;115;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,nj=` +`,n_=` 105;110;112;117;116;58;32;105;110;116;32;112;114;97;116;111;32;34;81;117;101;32;112;114;97;116;111;63;32;40;49;44;32;50;32;111;117;32;51;41;34; @@ -59365,7 +59377,7 @@ lösung: vb-wald-loesung.visustruct -`,ij=` +`,i_=` 105;110;116;32;110;117;109;101;114;111;49;32;61;32;52; @@ -59380,7 +59392,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,aj=` +`,a_=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;53;93; @@ -59402,7 +59414,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;105;109;112;97;32;111;32;113;117;97;100;114;111;58;32;34;32;43;32;110;111;109;101;115;91;115;111;114;116;101;97;100;111;32;45;32;49;93; -`,sj=` +`,s_=` 105;110;116;32;110;117;109;101;114;111;32;61;32;52; @@ -59414,7 +59426,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;250;109;101;114;111;32;100;117;112;108;105;99;97;100;111;58;32;34;32;43;32;110;117;109;101;114;111; -`,rj=` +`,r_=` -1; @@ -59461,7 +59473,7 @@ lösung: vb-wald-loesung.visustruct -`,oj=` +`,o_=` @@ -59498,7 +59510,7 @@ lösung: vb-wald-loesung.visustruct -`,lj=` +`,l_=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;99;97;98;117;108;97;114;105;111;46;99;115;118;34;41;41; @@ -59558,7 +59570,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;99;101;114;116;97;115;32;43;32;34;32;100;101;32;34;32;43;32;99;111;110;116;97;103;101;109;32;43;32;34;32;99;101;114;116;97;115;34; -`,uj=` +`,u_=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;99;97;98;117;108;97;114;105;111;46;99;115;118;34;41;41; @@ -59567,7 +59579,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,mj=` +`,m_=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -59586,7 +59598,7 @@ lösung: vb-wald-loesung.visustruct -`,cj=` +`,c_=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -59609,7 +59621,7 @@ lösung: vb-wald-loesung.visustruct 108;101;105;116;111;114;46;99;108;111;115;101;40;41; -`,dj=` +`,d_=` 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;34;90;111;114;97;59;49;59;50;59;50;34; @@ -59627,7 +59639,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;32;43;32;34;32;116;101;109;32;34;32;43;32;109;97;116;101;109;97;116;105;99;97;32;43;32;34;32;97;32;77;97;116;101;109;225;116;105;99;97;34; -`,hj=` +`,h_=` 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;34;123;92;34;110;111;109;101;92;34;58;32;92;34;90;111;114;97;92;34;44;32;92;34;101;115;112;101;99;105;101;92;34;58;32;92;34;99;97;98;114;97;92;34;44;32;92;34;105;100;97;100;101;92;34;58;32;54;125;44;34; @@ -59645,7 +59657,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101; -`,gj=` +`,g_=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -59665,7 +59677,7 @@ lösung: vb-wald-loesung.visustruct 102;105;99;104;101;105;114;111;46;99;108;111;115;101;40;41; -`,pj=` +`,p_=` 105;110;116;91;93;91;93;32;116;97;98;101;108;97;32;61;32;110;101;119;32;105;110;116;91;49;48;93;91;49;48;93; @@ -59697,7 +59709,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;183;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;116;97;98;101;108;97;91;97;32;45;32;49;93;91;98;32;45;32;49;93; -`,fj=` +`,f_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59745,7 +59757,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;105;118;114;101;115;58;32;34;32;43;32;108;105;118;114;101;115; -`,xj=` +`,x_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59760,7 +59772,7 @@ lösung: vb-wald-loesung.visustruct 108;117;103;97;114;101;115;91;50;93;91;51;93;32;61;32;116;114;117;101; -`,bj=` +`,b_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59794,7 +59806,7 @@ lösung: vb-wald-loesung.visustruct -`,vj=` +`,v_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59812,7 +59824,7 @@ lösung: vb-wald-loesung.visustruct 105;110;112;117;116;58;32;105;110;116;32;108;117;103;97;114;32;34;76;117;103;97;114;34; -`,yj=` +`,y_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59860,7 +59872,7 @@ lösung: vb-wald-loesung.visustruct -`,wj=` +`,w_=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -59884,7 +59896,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;105;108;97;32;49;44;32;108;117;103;97;114;32;50;32;118;101;110;100;105;100;111;63;32;34;32;43;32;108;117;103;97;114;101;115;91;49;93;91;50;93; -`,zj=` +`,z_=` 105;110;116;32;110;117;109;101;114;111;32;61;32;52; @@ -59899,7 +59911,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;115;117;108;116;97;100;111;58;32;34;32;43;32;114;101;115;117;108;116;97;100;111; -`,Ij=` +`,I_=` 105;110;116;32;110;117;109;101;114;111;32;61;32;52; @@ -59914,7 +59926,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;115;117;108;116;97;100;111;58;32;34;32;43;32;114;101;115;117;108;116;97;100;111; -`,kj=` +`,k_=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -59929,7 +59941,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;34; -`,Sj=` +`,S_=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -59944,7 +59956,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;34; -`,Tj=` +`,T_=` 83;116;114;105;110;103;32;110;111;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -59956,7 +59968,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;32;43;32;34;32;116;101;109;32;34;32;43;32;105;100;97;100;101;32;43;32;34;32;97;110;111;115;46;34; -`,_j=` +`,j_=` 83;116;114;105;110;103;32;110;111;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -59968,7 +59980,7 @@ lösung: vb-wald-loesung.visustruct 115;121;115;116;101;109;46;111;117;116;46;112;114;105;110;116;108;110;40;110;111;109;101;32;43;32;34;32;116;101;109;32;34;32;43;32;73;100;97;100;101;32;43;32;34;32;97;110;111;115;46;34;41; -`,jj=` +`,__=` 83;116;114;105;110;103;32;110;111;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -59986,7 +59998,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;108;116;117;114;97;58;32;34;32;43;32;97;108;116;117;114;97;32;43;32;34;32;109;34; -`,Cj=` +`,C_=` 105;110;116;32;110;117;109;101;114;111;32;61;32;51; @@ -60001,7 +60013,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;101;114;111; -`,Aj=` +`,A_=` 105;110;116;32;110;117;109;101;114;111;32;61;32;50; @@ -60016,7 +60028,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;101;114;111; -`,Pj=` +`,P_=` 111;117;116;112;117;116;58;32;110;117;109;101;114;111; @@ -60031,7 +60043,7 @@ lösung: vb-wald-loesung.visustruct 110;117;109;101;114;111;32;61;32;110;117;109;101;114;111;32;43;32;51; -`,Oj=` +`,O_=` 83;116;114;105;110;103;32;101;115;113;117;101;114;100;97;32;61;32;34;115;117;109;111;34; @@ -60055,7 +60067,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;105;114;101;105;116;97;58;32;34;32;43;32;100;105;114;101;105;116;97; -`,Dj=` +`,M_=` 83;116;114;105;110;103;32;101;115;113;117;101;114;100;97;32;61;32;34;115;117;109;111;34; @@ -60070,7 +60082,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;105;114;101;105;116;97;58;32;34;32;43;32;100;105;114;101;105;116;97; -`,Mj=` +`,Z_=` 105;110;116;32;97;32;61;32;53; @@ -60094,7 +60106,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,Bj=` +`,D_=` 105;110;116;32;105;100;97;100;101;32;61;32;49;52; @@ -60112,7 +60124,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;108;116;117;114;97;58;32;34;32;43;32;97;108;116;117;114;97;32;43;32;34;32;109;34; -`,Zj=` +`,B_=` 105;110;116;32;109;105;110;117;116;111;115;32;61;32;49;51;53; @@ -60127,7 +60139,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;104;111;114;97;115;32;43;32;34;32;104;111;114;97;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;109;105;110;117;116;111;115;34; -`,Lj=` +`,L_=` 105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;61;32;51; @@ -60142,7 +60154,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;112;114;101;99;111;84;111;116;97;108;32;43;32;34;32;101;117;114;111;115;34; -`,Wj=` +`,W_=` 105;110;116;32;115;97;108;100;111;32;61;32;50;48; @@ -60157,7 +60169,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;115;116;97;58;32;34;32;43;32;115;97;108;100;111; -`,Ej=` +`,E_=` 105;110;116;32;115;97;108;100;111;32;61;32;50;48; @@ -60172,7 +60184,7 @@ lösung: vb-wald-loesung.visustruct 115;97;108;100;111;32;61;32;115;97;108;100;111;32;45;32;112;114;101;99;111; -`,Nj=` +`,N_=` 105;110;116;32;112;114;101;99;111;32;61;32;57; @@ -60187,7 +60199,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,Fj=` +`,J_=` 105;110;116;32;102;97;116;105;97;115;32;61;32;56; @@ -60202,7 +60214,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;97;100;97;32;117;109;32;114;101;99;101;98;101;32;34;32;43;32;112;111;114;80;101;115;115;111;97;32;43;32;34;32;102;97;116;105;97;115;46;34; -`,Jj=` +`,F_=` 105;110;116;32;102;97;116;105;97;115;32;61;32;56; @@ -60217,7 +60229,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;97;100;97;32;117;109;32;114;101;99;101;98;101;32;34;32;43;32;112;111;114;112;101;115;115;111;97;32;43;32;34;32;102;97;116;105;97;115;46;34; -`,Rj=` +`,R_=` 105;110;116;32;99;111;109;112;114;105;109;101;110;116;111;32;61;32;55; @@ -60238,7 +60250,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;101;114;237;109;101;116;114;111;58;32;34;32;43;32;112;101;114;105;109;101;116;114;111; -`,Gj=` +`,G_=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -60253,7 +60265,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;117;116;111;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;101;103;117;110;100;111;115;34; -`,Hj=` +`,H_=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -60262,7 +60274,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;117;116;111;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;101;103;117;110;100;111;115;34; -`,Vj=` +`,V_=` 105;110;116;32;99;111;109;112;114;105;109;101;110;116;111;32;61;32;53; @@ -60277,7 +60289,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;114;101;97; -`,qj=` +`,Q_=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;111;109;101;32;34;67;111;109;111;32;116;101;32;99;104;97;109;97;115;63;34; @@ -60286,7 +60298,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;108;225;32;34;32;43;32;110;111;109;101;32;43;32;34;33;34; -`,Qj=` +`,q_=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -60301,7 +60313,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,Uj=` +`,U_=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -60313,7 +60325,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;40;97;32;43;32;98;41; -`,$j=` +`,Y_=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -60325,7 +60337,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;97;32;43;32;98; -`,Yj=` +`,$_=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -60334,7 +60346,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;111;32;112;114;243;120;105;109;111;32;97;110;111;32;116;101;110;115;32;34;32;43;32;40;105;100;97;100;101;32;43;32;49;41; -`,Xj=` +`,X_=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -60343,7 +60355,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;111;32;112;114;243;120;105;109;111;32;97;110;111;32;116;101;110;115;32;34;32;43;32;40;73;100;97;100;101;32;43;32;49;41; -`,Kj=` +`,K_=` 105;110;112;117;116;58;32;105;110;116;32;97;110;111;115;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -60883,7 +60895,7 @@ lösung: vb-wald-loesung.visustruct -`,_C=` +`,jC=` 105;110;116;32;100;105;97;32;61;32;55; @@ -60902,7 +60914,7 @@ lösung: vb-wald-loesung.visustruct -`,jC=` +`,_C=` 105;110;116;32;100;105;97;32;61;32;55; @@ -61065,7 +61077,7 @@ lösung: vb-wald-loesung.visustruct -`,DC=` +`,MC=` 80;244;114;32;117;109;97;32;99;104;225;118;101;110;97;32;110;97;32;109;101;115;97; @@ -61095,7 +61107,7 @@ lösung: vb-wald-loesung.visustruct 66;101;98;101;114;32;111;32;99;104;225; -`,MC=` +`,ZC=` 76;101;118;97;110;116;97;114; @@ -61110,7 +61122,7 @@ lösung: vb-wald-loesung.visustruct 84;111;109;97;114;32;111;32;112;101;113;117;101;110;111;45;97;108;109;111;231;111; -`,BC=` +`,DC=` 69;110;99;104;101;114;32;97;32;99;104;97;108;101;105;114;97;32;99;111;109;32;225;103;117;97; @@ -61131,7 +61143,7 @@ lösung: vb-wald-loesung.visustruct 84;105;114;97;114;32;97;32;115;97;113;117;101;116;97;32;100;101;32;99;104;225; -`,ZC=` +`,BC=` 69;115;116;225;32;97;32;99;104;111;118;101;114;63; @@ -61221,7 +61233,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;114;116;105;100;97;33;34; -`,FC=` +`,JC=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;70;97;116;111;114;105;97;108;32;100;101;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -61247,7 +61259,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;32;43;32;34;33;32;61;32;34;32;43;32;102;97;116;111;114;105;97;108; -`,JC=` +`,FC=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -61394,7 +61406,7 @@ lösung: vb-wald-loesung.visustruct -`,qC=` +`,QC=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;34; @@ -61417,7 +61429,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;112;97;115;115;111;115; -`,QC=` +`,qC=` 105;110;116;32;110;117;109;101;114;111;32;61;32;48; @@ -61451,7 +61463,7 @@ lösung: vb-wald-loesung.visustruct -`,$C=` +`,YC=` 105;110;112;117;116;58;32;105;110;116;32;111;98;106;101;116;105;118;111;32;34;79;98;106;101;116;105;118;111;63;34; @@ -61477,7 +61489,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;101;109;97;110;97;115;58;32;34;32;43;32;115;101;109;97;110;97;115; -`,YC=` +`,$C=` 105;110;112;117;116;58;32;105;110;116;32;111;98;106;101;116;105;118;111;32;34;79;98;106;101;116;105;118;111;63;34; @@ -62116,7 +62128,7 @@ lösung: vb-wald-loesung.visustruct -`,_A=` +`,jA=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;81;117;97;110;116;111;115;32;100;101;103;114;97;117;115;63;34; @@ -62145,7 +62157,7 @@ lösung: vb-wald-loesung.visustruct -`,jA=` +`,_A=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;51;93; @@ -62305,7 +62317,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,DA=` +`,MA=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -62335,7 +62347,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,MA=` +`,ZA=` 105;110;112;117;116;58;32;105;110;116;32;99;111;109;112;114;105;109;101;110;116;111;32;34;67;111;109;112;114;105;109;101;110;116;111;63;34; @@ -62350,7 +62362,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;193;114;101;97;58;32;34;32;43;32;102; -`,BA=` +`,DA=` 109;111;115;116;114;97;114;66;111;97;115;86;105;110;100;97;115;40;41; @@ -62362,7 +62374,7 @@ lösung: vb-wald-loesung.visustruct 109;111;115;116;114;97;114;82;101;115;117;108;116;97;100;111;40;41; -`,ZA=` +`,BA=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;97;115;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -62492,7 +62504,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,FA=` +`,JA=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;81;117;101;32;110;250;109;101;114;111;63;34; @@ -62504,7 +62516,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;32;113;117;97;100;114;97;100;111;32;233;32;34;32;43;32;113; -`,JA=` +`,FA=` 105;110;116;32;114;101;115;117;108;116;97;100;111;32;61;32;120;32;42;32;120; @@ -62555,7 +62567,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;43;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;115;111;109;97; -`,qA=` +`,QA=` 105;110;112;117;116;58;32;105;110;116;32;105;110;105;99;105;111;32;34;86;97;108;111;114;32;105;110;105;99;105;97;108;34; @@ -62578,7 +62590,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;225;33;34; -`,QA=` +`,qA=` 105;110;112;117;116;58;32;105;110;116;32;105;110;105;99;105;111;32;34;86;97;108;111;114;32;105;110;105;99;105;97;108;34; @@ -62623,7 +62635,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;111;103;97;100;111;114;32;50;58;32;34;32;43;32;115;111;109;97; -`,$A=` +`,YA=` 105;110;116;91;93;91;93;32;112;111;110;116;111;115;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -62645,7 +62657,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;111;103;97;100;111;114;32;50;58;32;34;32;43;32;115;111;109;97; -`,YA=` +`,$A=` 105;110;116;91;93;91;93;32;112;111;110;116;111;115;32;61;32;123;123;51;44;32;53;125;44;32;123;52;44;32;50;125;125; @@ -63314,7 +63326,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;115;116;111;117;32;97;32;97;112;114;101;110;100;101;114;32;101;115;116;114;117;116;111;103;114;97;109;97;115;34; -`,_P=` +`,jP=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -63355,7 +63367,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;113;117;97;110;116;105;100;97;100;101;32;43;32;34;32;108;105;110;104;97;115;32;103;117;97;114;100;97;100;97;115;34; -`,jP=` +`,_P=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -63444,7 +63456,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,DP=` +`,MP=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -63479,7 +63491,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;110;116;114;97;100;97;32;109;97;105;115;32;108;111;110;103;97;58;32;34;32;43;32;109;97;105;115;76;111;110;103;97; -`,MP=` +`,ZP=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -63488,7 +63500,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;91;93;32;108;105;110;104;97;115;32;61;32;116;101;120;116;111;46;115;112;108;105;116;40;34;92;110;34;41; -`,BP=` +`,DP=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -63542,7 +63554,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;101;108;104;111;114;32;110;111;116;97;32;97;32;73;110;103;108;234;115;58;32;34;32;43;32;109;101;108;104;111;114;78;111;109;101;32;43;32;34;32;40;34;32;43;32;109;101;108;104;111;114;78;111;116;97;32;43;32;34;41;34; -`,ZP=` +`,BP=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -63649,7 +63661,7 @@ lösung: vb-wald-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,FP=` +`,JP=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;82;97;112;111;115;97;34;125; @@ -63699,7 +63711,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;115;46;108;101;110;103;116;104;32;43;32;34;32;101;110;116;114;97;100;97;115;32;103;117;97;114;100;97;100;97;115;34; -`,JP=` +`,FP=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;82;97;112;111;115;97;34;125; @@ -63856,7 +63868,7 @@ lösung: vb-wald-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,qP=` +`,QP=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;98;105;108;104;101;116;101;115;63;34; @@ -63868,7 +63880,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,QP=` +`,qP=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;98;105;108;104;101;116;101;115;63;34; @@ -63904,7 +63916,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,$P=` +`,YP=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -63925,7 +63937,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,YP=` +`,$P=` 105;110;116;32;97;32;61;32;51; @@ -64937,7 +64949,7 @@ lösung: vb-wald-loesung.visustruct -`,_O=` +`,jO=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -64995,7 +65007,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;103;108;101;105;99;104;101;58;32;34;32;43;32;118;101;114;103;108;101;105;99;104;101; -`,jO=` +`,_O=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;123;51;44;32;53;44;32;56;125; @@ -65083,7 +65095,7 @@ lösung: vb-wald-loesung.visustruct -`,DO=` +`,MO=` 120;32;61;32;120;32;42;32;50; @@ -65092,7 +65104,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;109;32;85;110;116;101;114;112;114;111;103;114;97;109;109;58;32;120;32;61;32;34;32;43;32;120; -`,MO=` +`,ZO=` 105;110;116;32;97;98;115;116;97;110;100;32;61;32;109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41; @@ -65101,7 +65113,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;65;98;115;116;97;110;100;58;32;34;32;43;32;97;98;115;116;97;110;100;32;43;32;34;32;99;109;34;41; -`,BO=` +`,DO=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;60;32;49;48; @@ -65127,7 +65139,7 @@ lösung: vb-wald-loesung.visustruct -`,ZO=` +`,BO=` 33;109;98;111;116;46;105;115;66;117;116;116;111;110;66;40;41; @@ -65266,7 +65278,7 @@ lösung: vb-wald-loesung.visustruct -`,FO=` +`,JO=` 33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;114;111;116;34;41; @@ -65277,7 +65289,7 @@ lösung: vb-wald-loesung.visustruct -`,JO=` +`,FO=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;62;32;49;53; @@ -65346,7 +65358,7 @@ lösung: vb-wald-loesung.visustruct -`,qO=` +`,QO=` 33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;98;108;97;117;34;41; @@ -65374,7 +65386,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;71;101;112;97;114;107;116;33;34;41; -`,QO=` +`,qO=` 83;116;114;105;110;103;91;93;32;102;97;114;98;101;110;32;61;32;123;34;114;111;116;34;44;32;34;103;101;108;98;34;44;32;34;103;114;252;110;34;44;32;34;98;108;97;117;34;44;32;34;108;105;108;97;34;125; @@ -65416,7 +65428,7 @@ lösung: vb-wald-loesung.visustruct -`,$O=` +`,YO=` 109;98;111;116;46;100;114;105;118;101;40;53;48;44;32;53;48;41; @@ -65433,7 +65445,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;116;111;112;40;41; -`,YO=` +`,$O=` 109;98;111;116;46;102;111;114;119;97;114;100;40;41; @@ -65506,7 +65518,7 @@ lösung: vb-wald-loesung.visustruct -`,eD=` +`,eM=` 33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;98;108;97;117;34;41; @@ -65530,7 +65542,7 @@ lösung: vb-wald-loesung.visustruct -`,tD=` +`,tM=` 105;110;116;32;105;32;61;32;48; @@ -65552,7 +65564,7 @@ lösung: vb-wald-loesung.visustruct -`,nD=` +`,nM=` 105;110;116;32;105;32;61;32;51; @@ -65571,7 +65583,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;76;111;115;33;34;41; -`,iD=` +`,iM=` 105;110;116;32;105;32;61;32;49; @@ -65584,7 +65596,7 @@ lösung: vb-wald-loesung.visustruct -`,aD=` +`,aM=` 105;110;116;32;105;32;61;32;48; @@ -65617,7 +65629,7 @@ lösung: vb-wald-loesung.visustruct -`,sD=` +`,sM=` 109;98;111;116;46;103;101;116;76;111;117;100;110;101;115;115;40;41;32;62;32;54;48; @@ -65633,7 +65645,7 @@ lösung: vb-wald-loesung.visustruct -`,rD=` +`,rM=` 105;110;116;32;105;32;61;32;48; @@ -65652,7 +65664,7 @@ lösung: vb-wald-loesung.visustruct -`,oD=` +`,oM=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;62;32;49;53; @@ -65696,7 +65708,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;116;111;112;40;41; -`,lD=` +`,lM=` 109;98;111;116;46;103;101;116;66;114;105;103;104;116;110;101;115;115;40;41;32;60;32;51;48; @@ -65715,7 +65727,7 @@ lösung: vb-wald-loesung.visustruct -`,uD=` +`,uM=` 105;110;116;32;115;99;104;114;105;116;116;101;32;61;32;48; @@ -65745,7 +65757,7 @@ lösung: vb-wald-loesung.visustruct -`,mD=` +`,mM=` 105;110;116;32;108;97;101;110;103;101;32;61;32;54;48; @@ -65773,7 +65785,7 @@ lösung: vb-wald-loesung.visustruct -`,cD=` +`,cM=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;34;72;97;108;108;111;32;75;108;97;115;115;101;34; @@ -65782,7 +65794,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;116;101;120;116;32;43;32;34;32;40;34;32;43;32;116;101;120;116;46;108;101;110;103;116;104;40;41;32;43;32;34;41;34;41; -`,dD=` +`,dM=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;62;32;49;53; @@ -65796,7 +65808,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;112;108;97;121;84;111;110;101;40;52;52;48;44;32;51;48;48;41; -`,hD=` +`,hM=` 109;98;111;116;46;103;101;116;80;105;116;99;104;40;41;32;62;32;45;53;32;38;38;32;109;98;111;116;46;103;101;116;80;105;116;99;104;40;41;32;60;32;53;32;38;38;32;109;98;111;116;46;103;101;116;82;111;108;108;40;41;32;62;32;45;53;32;38;38;32;109;98;111;116;46;103;101;116;82;111;108;108;40;41;32;60;32;53; @@ -65812,7 +65824,7 @@ lösung: vb-wald-loesung.visustruct -`,gD=` +`,gM=` 109;98;111;116;46;103;101;116;76;111;117;100;110;101;115;115;40;41;32;60;32;53;48; @@ -65826,7 +65838,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;102;111;114;119;97;114;100;40;51;48;41; -`,pD=` +`,pM=` 105;110;116;32;105;32;61;32;48; @@ -65861,7 +65873,7 @@ lösung: vb-wald-loesung.visustruct -`,fD=` +`,fM=` 109;98;111;116;46;103;101;116;76;105;110;101;40;41;32;61;61;32;48; @@ -65895,7 +65907,7 @@ lösung: vb-wald-loesung.visustruct -`,xD=` +`,xM=` 33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;114;111;116;34;41; @@ -65939,7 +65951,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;116;111;112;40;41; -`,bD=` +`,bM=` 109;98;111;116;46;103;101;116;76;105;110;101;40;41; @@ -65965,7 +65977,7 @@ lösung: vb-wald-loesung.visustruct -`,vD=` +`,vM=` 105;110;116;91;93;32;116;111;101;110;101;32;61;32;123;50;54;50;44;32;50;57;52;44;32;51;51;48;44;32;51;52;57;44;32;51;57;50;125; @@ -65981,7 +65993,7 @@ lösung: vb-wald-loesung.visustruct -`,yD=` +`,yM=` 105;110;116;32;105;32;61;32;48; @@ -66047,7 +66059,7 @@ lösung: vb-wald-loesung.visustruct -`,wD=` +`,wM=` 109;98;111;116;46;103;101;116;66;114;105;103;104;116;110;101;115;115;40;41;32;60;32;51;48; @@ -66063,7 +66075,7 @@ lösung: vb-wald-loesung.visustruct -`,zD=` +`,zM=` 109;98;111;116;46;103;101;116;66;114;105;103;104;116;110;101;115;115;40;41;32;60;32;50;48; @@ -66080,7 +66092,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;104;111;119;84;101;120;116;40;34;90;122;122;34;41; -`,ID=` +`,IM=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;101; @@ -66109,7 +66121,7 @@ lösung: vb-wald-loesung.visustruct -`,kD=` +`,kM=` 105;110;116;32;97;32;61;32;113;117;97;100;114;97;116;122;97;104;108;40;51;41; @@ -66124,13 +66136,13 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,SD=` +`,SM=` 114;101;116;117;114;110;32;120;32;42;32;120; -`,TD=` +`,TM=` 83;116;114;105;110;103;32;119;111;114;116;32;61;32;34;76;117;100;119;105;103;34; @@ -66152,7 +66164,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;114;117;101;99;107;119;97;101;114;116;115; -`,_D=` +`,jM=` 105;110;116;32;108;97;101;110;103;101;32;61;32;54;48; @@ -66167,7 +66179,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;114;101;99;107;101;58;32;34;32;43;32;115;116;114;101;99;107;101;32;43;32;34;32;99;109;34; -`,jD=` +`,_M=` 105;110;116;91;93;32;110;111;116;101;110;32;61;32;123;50;44;32;49;44;32;51;44;32;50;125; @@ -66192,7 +66204,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;58;32;34;32;43;32;110;111;116;101;110;46;108;101;110;103;116;104; -`,CD=` +`,CM=` 109;98;111;116;46;102;111;114;119;97;114;100;40;41; @@ -66267,7 +66279,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41; -`,AD=` +`,AM=` 113;117;97;100;114;97;116;40;51;48;41; @@ -66276,7 +66288,7 @@ lösung: vb-wald-loesung.visustruct 113;117;97;100;114;97;116;40;53;48;41; -`,PD=` +`,PM=` 105;110;116;32;105;32;61;32;48; @@ -66331,7 +66343,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41; -`,OD=` +`,OM=` 105;110;116;32;105;32;61;32;48; @@ -66347,7 +66359,7 @@ lösung: vb-wald-loesung.visustruct -`,DD=` +`,MM=` 105;110;116;32;105;32;61;32;48; @@ -66370,7 +66382,7 @@ lösung: vb-wald-loesung.visustruct -`,MD=` +`,ZM=` 109;98;111;116;46;103;101;116;76;105;110;101;40;41;32;61;61;32;48; @@ -66384,7 +66396,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;49;56;48;41; -`,BD=` +`,DM=` 109;98;111;116;46;103;101;116;80;105;116;99;104;40;41;32;62;32;50;48;32;124;124;32;109;98;111;116;46;103;101;116;80;105;116;99;104;40;41;32;60;32;45;50;48; @@ -66400,7 +66412,7 @@ lösung: vb-wald-loesung.visustruct -`,ZD=` +`,BM=` 105;110;116;32;105;32;61;32;48; @@ -66452,7 +66464,7 @@ lösung: vb-wald-loesung.visustruct -`,LD=` +`,LM=` 105;110;116;32;105;32;61;32;49; @@ -66468,7 +66480,7 @@ lösung: vb-wald-loesung.visustruct -`,WD=` +`,WM=` 33;109;98;111;116;46;105;115;66;117;116;116;111;110;65;40;41; @@ -66482,7 +66494,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;102;111;114;119;97;114;100;40;51;48;41; -`,ED=` +`,EM=` 109;98;111;116;46;112;108;97;121;84;111;110;101;40;50;54;50;44;32;51;48;48;41; @@ -66500,7 +66512,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;112;108;97;121;84;111;110;101;40;51;57;50;44;32;51;48;48;41; -`,ND=` +`,NM=` 105;110;116;32;105;32;61;32;48; @@ -66522,7 +66534,7 @@ lösung: vb-wald-loesung.visustruct -`,FD=` +`,JM=` 105;110;116;32;108;105;110;107;115;32;61;32;57;57; @@ -66554,7 +66566,7 @@ lösung: vb-wald-loesung.visustruct -`,JD=` +`,FM=` 105;110;116;32;115;101;105;116;101;32;61;32;51;48; @@ -66573,7 +66585,7 @@ lösung: vb-wald-loesung.visustruct -`,RD=` +`,RM=` 105;110;116;32;105;32;61;32;48; @@ -66606,7 +66618,7 @@ lösung: vb-wald-loesung.visustruct -`,GD=` +`,GM=` 109;98;111;116;46;103;101;116;76;105;110;101;40;41;32;61;61;32;48; @@ -66645,7 +66657,7 @@ lösung: vb-wald-loesung.visustruct -`,HD=` +`,HM=` 109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;60;32;50;48; @@ -66661,7 +66673,7 @@ lösung: vb-wald-loesung.visustruct -`,VD=` +`,VM=` 109;98;111;116;46;114;101;115;101;116;84;105;109;101;114;40;41; @@ -66681,7 +66693,7 @@ lösung: vb-wald-loesung.visustruct 109;98;111;116;46;115;116;111;112;40;41; -`,qD=` +`,QM=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;118;111;114;110;97;109;101;32;34;86;111;114;110;97;109;101;34; @@ -66693,7 +66705,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,QD=` +`,qM=` 83;116;114;105;110;103;32;119;111;114;116;32;61;32;34;90;105;101;103;101;110;98;111;99;107;34; @@ -66732,7 +66744,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116; -`,UD=` +`,UM=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;111;114;116;32;101;105;110;103;101;98;101;110;34; @@ -66754,7 +66766,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;114;117;101;99;107;119;97;101;114;116;115; -`,$D=` +`,YM=` 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;34;76;117;100;119;105;103;59;71;101;105;223;98;111;99;107;59;55;34; @@ -66773,7 +66785,7 @@ lösung: vb-wald-loesung.visustruct -`,YD=` +`,$M=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;97;116;122;32;34;83;97;116;122;32;101;105;110;103;101;98;101;110;34; @@ -66785,7 +66797,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;246;114;116;101;114;58;32;34;32;43;32;119;111;101;114;116;101;114;46;108;101;110;103;116;104; -`,XD=` +`,XM=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;111;114;116;32;101;105;110;103;101;98;101;110;34; @@ -66817,7 +66829,7 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;32;101;58;32;34;32;43;32;97;110;122;97;104;108; -`,KD=` +`,KM=` 83;116;114;105;110;103;32;119;111;114;116;32;61;32;34;71;101;105;223;98;111;99;107;34; @@ -66841,14 +66853,14 @@ lösung: vb-wald-loesung.visustruct 111;117;116;112;117;116;58;32;119;111;114;116;46;116;111;85;112;112;101;114;67;97;115;101;40;41; -`,eM=`// Labyrinth mit Ausgängen (nach Kara): jede Wandreihe hat genau eine Lücke, immer weiter rechts. Ein Zeichen = 30 cm. +`,eZ=`// Labyrinth mit Ausgängen (nach Kara): jede Wandreihe hat genau eine Lücke, immer weiter rechts. Ein Zeichen = 30 cm. raster: 3 .......Z #####.## ........ ##.##### >....... -`,tM=`// Labyrinth mit Ausgängen, drei Reihen. Ein Zeichen = 30 cm. +`,tZ=`// Labyrinth mit Ausgängen, drei Reihen. Ein Zeichen = 30 cm. raster: 3 ........Z ######.## @@ -66857,20 +66869,20 @@ raster: 3 ......... .######## >........ -`,nM=`// Um die Ecke (Sequenz im Kurs, Lektion 5): ein Zeichen = 30 cm. +`,nZ=`// Um die Ecke (Sequenz im Kurs, Lektion 5): ein Zeichen = 30 cm. raster: 3 Z.... ###.. ..... ..### ^.... -`,iM=`// Fahre bis Rot: kurzer Weg +`,iZ=`// Fahre bis Rot: kurzer Weg ..... ..r.. ..... ..... ..^.. -`,aM=`// Fahre bis Rot: erst kommt ein grünes Feld +`,aZ=`// Fahre bis Rot: erst kommt ein grünes Feld ..... ..r.. ..... @@ -66879,21 +66891,21 @@ Z.... ..... ..... ..^.. -`,sM=`// Bis Blau, bei Grün piepen +`,sZ=`// Bis Blau, bei Grün piepen ..... ..b.. ..... ..g.. ..... ..^.. -`,rM=`// Bis Blau, ohne grünes Feld +`,rZ=`// Bis Blau, ohne grünes Feld ..... ..b.. ..... ..... ..... ..^.. -`,oM=`// Hindernis ausweichen: ein Klotz im Weg, das rote Feld liegt dahinter. +`,oZ=`// Hindernis ausweichen: ein Klotz im Weg, das rote Feld liegt dahinter. ......... .....r... .....o... @@ -66904,7 +66916,7 @@ Z.... ......... ......... ..^...... -`,lM=`// Hindernis ausweichen: zwei Klötze im Weg. +`,lZ=`// Hindernis ausweichen: zwei Klötze im Weg. ......... .......r. .......o. @@ -66919,7 +66931,7 @@ Z.... ......... ......... .^....... -`,uM=`// Labyrinth: Gänge 30 cm breit, Wände 10 cm dick. Ziel oben links. +`,uZ=`// Labyrinth: Gänge 30 cm breit, Wände 10 cm dick. Ziel oben links. ........... .Z......... ........... @@ -66931,7 +66943,7 @@ Z.... ........... .........<. ........... -`,mM=`// Labyrinth: Gänge 30 cm breit, Wände 10 cm dick. Ziel oben rechts. +`,mZ=`// Labyrinth: Gänge 30 cm breit, Wände 10 cm dick. Ziel oben rechts. ........... .........Z. ........... @@ -66943,7 +66955,7 @@ Z.... ........... .>......... ........... -`,cM=`// Linienfolger: Die Linie biegt nach rechts ab und endet vor der Wand. +`,cZ=`// Linienfolger: Die Linie biegt nach rechts ab und endet vor der Wand. ######### ......... ......... @@ -66958,7 +66970,7 @@ Z.... ......... ..^...... linie: 2,12 2,8 4,5 4,0.6 -`,dM=`// Linienfolger: Die Linie biegt nach links ab und endet vor der Wand. +`,dZ=`// Linienfolger: Die Linie biegt nach links ab und endet vor der Wand. ######### ......... ......... @@ -66973,7 +66985,7 @@ linie: 2,12 2,8 4,5 4,0.6 ......... ......^.. linie: 6,12 6,8 4,5 4,0.6 -`,hM=`// Linienfolger mit Stopp: Am Ende der Linie liegt ein rotes Feld. +`,hZ=`// Linienfolger mit Stopp: Am Ende der Linie liegt ein rotes Feld. ......... .....r... .....o... @@ -66987,7 +66999,7 @@ linie: 6,12 6,8 4,5 4,0.6 ......... ..^...... linie: 2,11 2,8 5,4 5,1.5 -`,gM=`// Linienfolger mit Stopp: Die Linie schlängelt sich zum roten Feld. +`,gZ=`// Linienfolger mit Stopp: Die Linie schlängelt sich zum roten Feld. ........... ...r....... ...o....... @@ -67003,7 +67015,7 @@ linie: 2,11 2,8 5,4 5,1.5 ........... .......^... linie: 7,13 7,10 5,8 5,7 3,5 3,1.5 -`,pM=`// Einparken: rechts parken Autos (Klötze), die blaue Markierung zeigt die Lücke. +`,pZ=`// Einparken: rechts parken Autos (Klötze), die blaue Markierung zeigt die Lücke. #....#### #....#### #....#### @@ -67016,7 +67028,7 @@ linie: 7,13 7,10 5,8 5,7 3,5 3,1.5 #....#### #....#### #..^.#### -`,fM=`// Einparken: Die Lücke liegt weiter vorn. +`,fZ=`// Einparken: Die Lücke liegt weiter vorn. #....#### #..b....# #.....o.# @@ -67029,14 +67041,14 @@ linie: 7,13 7,10 5,8 5,7 3,5 3,1.5 #....#### #....#### #..^.#### -`,xM=`// Bis zur Linie: der schwarze Rand ist nah +`,xZ=`// Bis zur Linie: der schwarze Rand ist nah ..... ===== ..... ..... ..^.. ..... -`,bM=`// Bis zur Linie: der schwarze Rand ist weiter weg +`,bZ=`// Bis zur Linie: der schwarze Rand ist weiter weg ..... ===== ..... @@ -67046,17 +67058,17 @@ linie: 7,13 7,10 5,8 5,7 3,5 3,1.5 ..... ..^.. ..... -`,vM=`// Slalom: ein Zeichen = 30 cm. Vier Pylonen, abwechselnd oben und unten herum, Ziel am Ende. +`,vZ=`// Slalom: ein Zeichen = 30 cm. Vier Pylonen, abwechselnd oben und unten herum, Ziel am Ende. raster: 3 ......... >#.#.#.#Z ......... -`,yM=`// Tunnelsucher (nach Kara): Halt im ersten Feld mit Wand links UND rechts (hellgrün). Ein Zeichen = 30 cm. +`,yZ=`// Tunnelsucher (nach Kara): Halt im ersten Feld mit Wand links UND rechts (hellgrün). Ein Zeichen = 30 cm. raster: 3 ..#..###. >....o... ....##### -`,wM=`// Tunnelsucher, nach oben. Ein Zeichen = 30 cm. +`,wZ=`// Tunnelsucher, nach oben. Ein Zeichen = 30 cm. raster: 3 .#.#. .#o#. @@ -67064,12 +67076,12 @@ raster: 3 .#... ..... ..^.. -`,zM=`// Kleeblatt im Wald (nach Kara): Bäume liegen auf dem Weg zum Ziel, nie zwei nebeneinander. Ein Zeichen = 30 cm. +`,zZ=`// Kleeblatt im Wald (nach Kara): Bäume liegen auf dem Weg zum Ziel, nie zwei nebeneinander. Ein Zeichen = 30 cm. raster: 3 .......... >..#.#..#Z .......... -`,IM=`// Kleeblatt im Wald, nach oben. Ein Zeichen = 30 cm. +`,IZ=`// Kleeblatt im Wald, nach oben. Ein Zeichen = 30 cm. raster: 3 .Z. .#. @@ -67078,7 +67090,7 @@ raster: 3 ... ... .^. -`,kM=`// Wand vorn? Vor dem mBot2 ist viel Platz. +`,kZ=`// Wand vorn? Vor dem mBot2 ist viel Platz. ##### ..... ..... @@ -67088,14 +67100,14 @@ raster: 3 ..... ..^.. ..... -`,SM=`// Bis zur Wand: kurzer Weg +`,SZ=`// Bis zur Wand: kurzer Weg ##### ..... ..Z.. ..... ..... ..^.. -`,TM=`// Bis zur Wand: langer Weg +`,TZ=`// Bis zur Wand: langer Weg ##### ..... ..Z.. @@ -67111,7 +67123,7 @@ raster: 3 ..... ..... ..^.. -`,_M=`// Bis zur Wand: mittlerer Weg +`,jZ=`// Bis zur Wand: mittlerer Weg ##### ..... ..Z.. @@ -67122,26 +67134,26 @@ raster: 3 ..... ..... ..^.. -`,jM=`// Wand vorn? Die Wand steht direkt vor dem mBot2. +`,_Z=`// Wand vorn? Die Wand steht direkt vor dem mBot2. ##### ..... ..^.. ..... -`,CM=`// Zwei Sekunden mit halber Kraft: Wo bleibt er stehen? +`,CZ=`// Zwei Sekunden mit halber Kraft: Wo bleibt er stehen? ..... ..... ..... ..o.. ..... ..^.. -`,AM=`// Fahre bis zum Ziel: kurzer Weg, keine Wand +`,AZ=`// Fahre bis zum Ziel: kurzer Weg, keine Wand ..... ..Z.. ..... ..... ..^.. ..... -`,PM=`// Fahre bis zum Ziel: langer Weg, keine Wand +`,PZ=`// Fahre bis zum Ziel: langer Weg, keine Wand ..... ..Z.. ..... @@ -67154,77 +67166,77 @@ raster: 3 ..... ..^.. ..... -`,OM=""+new URL("ada-lovelace-DS_988PF.jpg",import.meta.url).href,DM=""+new URL("aufgabe-mehrwertsteuer-C-TFTrWz.svg",import.meta.url).href,MM=""+new URL("ben-shneiderman-Cev5hrqS.jpg",import.meta.url).href,BM=""+new URL("caesar-ascii-Bix93F5i.svg",import.meta.url).href,ZM=""+new URL("caesar-scheibe-CMRPZI6Y.svg",import.meta.url).href,LM=""+new URL("caesar-verschiebung-DIR-lDbs.svg",import.meta.url).href,WM=""+new URL("aufgabe-mehrwertsteuer-CnrZ00ny.svg",import.meta.url).href,EM=""+new URL("kino-saal-C8zaJk4X.svg",import.meta.url).href,NM=""+new URL("kino-schleifen-D7sfo9iK.svg",import.meta.url).href,FM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlB1dCBhIGN1cCBvbiB0aGUgdGFibGU8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjEzMyI+U3VnYXIgd2FudGVkPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5BZGQgc3VnYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+VGVhIHN0aWxsIHRvbyBob3Q/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+V2FpdCAxIG1pbnV0ZTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5EcmluayB0aGUgdGVhPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIzOTUiPkVuZDwvdGV4dD4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjYwMCI+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjE2OCIgZmlsbD0iIzI0OGEzZCI+eWVzPC90ZXh0PgogICAgPHRleHQgeD0iMjQyIiB5PSIxMjIiIGZpbGw9IiNkNzAwMTUiPm5vPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPnllczwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMzIwIiBmaWxsPSIjZDcwMDE1Ij5ubzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5TdGFydCBvciBlbmQ8L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ0MyI+U3RhdGVtZW50PC90ZXh0PgogICAgPHRleHQgeD0iODYiIHk9IjQ3MyI+RGVjaXNpb248L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ3MyI+SW5wdXQgb3Igb3V0cHV0PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",JM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V2hlcmUgZG9lcyB0aGUgZWxlbWVudCBsYW5kPzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij50b3AgaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIxMTUiIHk9Ijk3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj5ib3R0b20gaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+aW4gZnJvbnQ8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YWZ0ZXI8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTMyIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2Ij7DuDwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjE1NyI+4oaSIDx0c3BhbiBmb250LXdlaWdodD0iNjAwIj5yZXBsYWNlczwvdHNwYW4+IGl0PC90ZXh0Pgo8L3N2Zz4K",RM=""+new URL("l03-lochkarte-beschriftet-BjBFZjzb.svg",import.meta.url).href,GM=""+new URL("l03-lochkarte-BB3rWQOm.svg",import.meta.url).href,HM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMjg4IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByaWNlPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPlc8L3RzcGFuPml0aDx0c3BhbiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj5UPC90c3Bhbj5heDwvdGV4dD4KPGxpbmUgeDE9IjE4MiIgeTE9IjU0IiB4Mj0iMTgyIiB5Mj0iODIiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIvPgo8bGluZSB4MT0iMjc4IiB5MT0iNTQiIHgyPSIyNzgiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxwYXRoIGQ9Ik0yMCAyNzIgSDQ0MCIgc3Ryb2tlPSIjZTVkM2IwIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTU2IDE3MiBMMTUwIDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTE1MCAyMjYgTDE1NiAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIxNjEiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTMyOCAxNzIgTDMzMiAyMjYiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zMzIgMjI2IEwzMjggMjYyIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxjaXJjbGUgY3g9IjMzMiIgY3k9IjIyNiIgcj0iNiIgZmlsbD0iIzdhNTUzMCIgb3BhY2l0eT0iMC41NSIvPgo8ZWxsaXBzZSBjeD0iMzMzIiBjeT0iMjY3IiByeD0iMTEiIHJ5PSI1IiBmaWxsPSIjN2E1NTMwIi8+CjxwYXRoIGQ9Ik0xMjAgMTQwIEMxMDQgMTUwIDEwNCAxNzYgMTEwIDE5NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8ZWxsaXBzZSBjeD0iMTEwIiBjeT0iMjAwIiByeD0iNSIgcnk9IjkiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNzIgQzEwOCAxNTIgMTE0IDEyOCAxMzQgMTIyIEMxNDggMTIwIDE1NCA4NCAxODIgODQgQzIxMCA4NCAyMDggMTI2IDIzMCAxMjQgQzI1MiAxMjYgMjUwIDg0IDI3OCA4NCBDMzA2IDg0IDMwOCAxMjIgMzE4IDEyOCBDMzQwIDEzMiAzNDggMTU4IDM2NCAxNTggQzM3NiAxNTggMzc4IDEyNCAzODIgMTEwIEMzODYgOTggNDAwIDk2IDQxMiA5OSBDNDI0IDEwMiA0MzAgMTA4IDQyOCAxMTYgQzQyNiAxMjMgNDE0IDEyNCA0MDQgMTIyIEMzOTYgMTIyIDM5NCAxMjggMzk0IDEzNiBDMzk0IDE2MiAzODggMTg0IDM2NiAxODYgQzM1MCAxODggMzQwIDE4MiAzMzAgMTc4IEMyNjAgMTg4IDIwMCAxODggMTQwIDE4MiBDMTMwIDE4MCAxMjQgMTc3IDEyMCAxNzIgWiIgZmlsbD0iI2QyYTU2YSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTM0IDE3MiBMMTI4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTEyOCAyMjYgTDEzNCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMTI4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIxMzkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTMwOCAxNzIgTDMxMiAyMjYiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zMTIgMjI2IEwzMDggMjYyIiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxjaXJjbGUgY3g9IjMxMiIgY3k9IjIyNiIgcj0iNiIgZmlsbD0iIzdhNTUzMCIgb3BhY2l0eT0iMC41NSIvPgo8ZWxsaXBzZSBjeD0iMzEzIiBjeT0iMjY3IiByeD0iMTEiIHJ5PSI1IiBmaWxsPSIjN2E1NTMwIi8+CjxwYXRoIGQ9Ik0zOTAgMTAzIEwzODYgOTIgTDM5OCAxMDAgWiIgZmlsbD0iI2QyYTU2YSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGNpcmNsZSBjeD0iNDA2IiBjeT0iMTA3IiByPSIzLjIiIGZpbGw9IiMxYzFjMWUiLz4KPHBhdGggZD0iTTQwMSAxMDQgUTQwNiAxMDEgNDExIDEwNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNDIyIDEwNyBxNCAxIDUgNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNDE2IDExOSBRNDIyIDExOCA0MjcgMTE3IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=",VM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWdlID0gMTQ8L3RleHQ+CiAgPHBhdGggZD0iTTEzMCA3MCBMMTcwIDUwIEwzMDAgNTAgTDI2MCA3MCBaIiBmaWxsPSIjYzk4YTNjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE4MCIgeT0iMzQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI1MCIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMDIiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjIwIiBmb250LXdlaWdodD0iNzAwIj4xNDwvdGV4dD4KICA8cmVjdCB4PSIxMzAiIHk9IjcwIiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2U5Yjg3MiIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBkPSJNMjYwIDcwIEwzMDAgNTAgTDMwMCAxNTAgTDI2MCAxNzAgWiIgZmlsbD0iI2Q0OWE0YyIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cmVjdCB4PSIxNTAiIHk9IjEwMCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjOGE1YTFmIi8+CiAgPHRleHQgeD0iMTk1IiB5PSIxMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmFnZTwvdGV4dD4KICA8cmVjdCB4PSIxMzgiIHk9IjE0MiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjIwIiByeD0iMTAiIGZpbGw9IiMwMDdhZmYiLz4KICA8dGV4dCB4PSIxNTUiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMiIgZmlsbD0iI2ZmZmZmZiIgZm9udC13ZWlnaHQ9IjYwMCI+aW50PC90ZXh0PgogIDxnIHN0cm9rZT0iIzZlNmU3MyI+CiAgICA8bGluZSB4MT0iMzEwIiB5MT0iNDgiIHgyPSIyMjYiIHkyPSI1MiIvPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjExNSIgeDI9IjI0MiIgeTI9IjExNSIvPgogICAgPGxpbmUgeDE9IjgwIiB5MT0iMTUyIiB4Mj0iMTM0IiB5Mj0iMTUyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjMxNiIgeT0iNTIiPlZhbHVlPC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0YSB0eXBlPC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMTk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgbmFtZSBnZXRzIHlvdSB0byB0aGUgdmFsdWUuPC90ZXh0Pgo8L3N2Zz4K",qM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9pbnRzPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCB3b3JrIG91dCB0aGUgcmlnaHQ6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIHN0b3JlIHRoZSByZXN1bHQgb24gdGhlIGxlZnQ8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzIGJlZm9yZTogPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj4gICDihpIgICBwb2ludHMgYWZ0ZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",QM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGVmdDwvdGV4dD4KICA8dGV4dCB4PSI3NSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5qdWljZTwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+dGVtcDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+ZW1wdHk8L3RleHQ+CiAgPHRleHQgeD0iMzI1IiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnJpZ2h0PC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53YXRlcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik04OCAxMDQgQzExMCA3MCwgMTYwIDcwLCAxODYgMTA0Ii8+CiAgICA8cGF0aCBkPSJNMzE4IDEwNCBDMjcwIDE1LCAxMzAgMTUsIDgyIDEwNCIvPgogICAgPHBhdGggZD0iTTIxNCAxMDQgQzI0MCA3MCwgMjkwIDcwLCAzMTIgMTA0Ii8+CiAgPC9nPgogIDxnIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPGNpcmNsZSBjeD0iMTM3IiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIxMzciIHk9Ijg1Ij4xPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMzgiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyMDAiIHk9IjQzIj4yPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjYzIiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyNjMiIHk9Ijg1Ij4zPC90ZXh0PgogIDwvZz4KICA8ZyB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMiI+CiAgICA8dGV4dCB4PSI3MCIgeT0iMjQ3Ij4xOiB0ZW1wID0gbGVmdDwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjQ3Ij4yOiBsZWZ0ID0gcmlnaHQ8L3RleHQ+CiAgICA8dGV4dCB4PSIzMzAiIHk9IjI0NyI+MzogcmlnaHQgPSB0ZW1wPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",UM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dmFsaWQ8L3RleHQ+CiAgPHRleHQgeD0iNDAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnZhbGlkPC90ZXh0Pjx0ZXh0IHg9IjM2MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludmFsaWQ8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPmdyYWRlICZndDs9IDEgJmFtcDsmYW1wOyBncmFkZSAmbHQ7PSA2PC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIxNDIiIGZpbGw9IiNiOTFjMWMiPmdyYWRlICZsdDsgMSB8fCBncmFkZSAmZ3Q7IDY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",$M="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Ib3cgdGhlIHdoaWxlIGxvb3AgcnVuczwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjQ0IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iMjAiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGNoZWNrIHRoZSBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgcnVuIHRoZSBpbnNpZGU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5iYWNrPC90ZXh0PgogIDx0ZXh0IHg9IjM4IiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPnRvIHRoZSB0b3A8L3RleHQ+CiAgPHRleHQgeD0iMzQ4IiB5PSIxMzQiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmZhbHNlPC90ZXh0PgogIDx0ZXh0IHg9IjI3NiIgeT0iMjA1IiB0ZXh0LWFuY2hvcj0iZW5kIj5jb250aW51ZSBiZWxvdyB0aGUgbG9vcDwvdGV4dD4KPC9zdmc+Cg==",YM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHJlLXRlc3QgKHdoaWxlKTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5wb3N0LXRlc3QgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBpbnNpZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY29uZGl0aW9uPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5JZiB0aGUgY29uZGl0aW9uIGlzIGZhbHNlIGF0IG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50aGUgaW5zaWRlIHJ1bnMgPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm5ldmVyPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgaW5zaWRlIGFsd2F5cyBydW5zPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj48dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+YXQgbGVhc3Qgb25jZTwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",XM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4ob25seSBvbmNlKTwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNzYiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSIxNyIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY2hlY2sgdGhlIGNvbmRpdGlvbjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjEzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIxNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoiBydW4gdGhlIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBzdGVwLCBlLmcuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+YmFjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50byDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZG9uZTwvdGV4dD4KPC9zdmc+Cg==",KM="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtYmVycyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5JbmRleDwvdGV4dD4KICA8dGV4dCB4PSI5MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjA8L3RleHQ+PHJlY3QgeD0iNjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iOTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj4yPC90ZXh0PgogIDx0ZXh0IHg9IjE1MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjE8L3RleHQ+PHJlY3QgeD0iMTIwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjQ8L3RleHQ+CiAgPHRleHQgeD0iMjEwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MjwvdGV4dD48cmVjdCB4PSIxODAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjEwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NjwvdGV4dD4KICA8dGV4dCB4PSIyNzAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4zPC90ZXh0PjxyZWN0IHg9IjI0MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNzAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj44PC90ZXh0PgogIDx0ZXh0IHg9IjMzMCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjQ8L3RleHQ+PHJlY3QgeD0iMzAwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMzMCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjEwPC90ZXh0PgogIDx0ZXh0IHg9IjIwIiB5PSI5MCIgZmlsbD0iIzZlNmU3MyIgZm9udC1zaXplPSIxMiI+VmFsdWU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+PGxpbmUgeDE9IjkwIiB5MT0iMTQwIiB4Mj0iOTAiIHkyPSIxMTIiLz48bGluZSB4MT0iMzMwIiB5MT0iMTQwIiB4Mj0iMzMwIiB5Mj0iMTEyIi8+PC9nPgogIDxnIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjEzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dGV4dCB4PSI5MCIgeT0iMTU2Ij5udW1iZXJzWzBdIGlzIDI8L3RleHQ+PHRleHQgeD0iMzMwIiB5PSIxNTYiPm51bWJlcnNbNF0gaXMgMTA8L3RleHQ+PC9nPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj41IHNsb3RzLCBjb3VudGluZyBzdGFydHMgYXQgMDogdGhlIGxhc3QgaW5kZXggaXMgNC48L3RleHQ+Cjwvc3ZnPgo=",eB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPmNhbGN1bGF0b3IuY3BwPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iNTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMzYTNhM2MiPnNvdXJjZSBjb2RlIGluIEMrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjgwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjEyNiIgeDI9IjgwIiB5Mj0iMTU2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSIyMjAiIHkyPSI5NCIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjEyNiIgeDI9IjIyMCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMzYwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIzNjAiIHkxPSIxMjYiIHgyPSIzNjAiIHkyPSIxNTYiLz4KICA8L2c+CiAgPHJlY3QgeD0iMTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb21waWxlcjwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMTU4IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjYjkxYzFjIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5NCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+V2luZG93czwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5Db21waWxlIGFnYWluPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjc4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPmZvciBldmVyeSBzeXN0ZW08L3RleHQ+Cjwvc3ZnPgo=",tB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPlRpbWVzVGFibGUuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5zb3VyY2UgY29kZSwgZm9yIHBlb3BsZTwvdGV4dD4KICA8cmVjdCB4PSIxMTAiIHk9IjEwNCIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXdlaWdodD0iNjAwIj5UaW1lc1RhYmxlLmNsYXNzPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMTQzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5ieXRlY29kZTogQ0EgRkUgQkEgQkUg4oCmPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMjIwIiB5Mj0iMTAyIi8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iODAiIHkyPSIxOTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxNTIiIHgyPSIyMjAiIHkyPSIxOTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxNTIiIHgyPSIzNjAiIHkyPSIxOTYiLz4KICA8L2c+CiAgPHRleHQgeD0iMjMwIiB5PSI4NiI+Y29tcGlsZXIgamF2YWM8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvd3M8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjIzNCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPkxpbnV4PC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPldyaXRlIG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMzE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPnJ1biBhbnl3aGVyZTwvdGV4dD4KPC9zdmc+Cg==",nB=""+new URL("mvc-klick-BIA_bYzu.svg",import.meta.url).href,iB=""+new URL("ss-binaere-suche-D02W1TH_.svg",import.meta.url).href,aB=""+new URL("ss-bubblesort-CmKEoNfO.svg",import.meta.url).href,sB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Mb29raW5nIGZvciB0aGUgOS4gVGhlIGNhcmRzIGFyZSBtaXhlZCB1cC48L3RleHQ+CjxnPjxyZWN0IHg9IjE0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIzNC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij43PC90ZXh0Pjx0ZXh0IHg9IjM0LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjZGMyNjI2Ij7imaU8L3RleHQ+PC9nPgo8dGV4dCB4PSIzNC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMzQuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4xLjwvdGV4dD4KPGc+PHJlY3QgeD0iNjIiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjgyLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjM8L3RleHQ+PHRleHQgeD0iODIuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZoDwvdGV4dD48L2c+Cjx0ZXh0IHg9IjgyLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSI4Mi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjIuPC90ZXh0Pgo8Zz48cmVjdCB4PSIxMTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjEzMC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij4xMDwvdGV4dD48dGV4dCB4PSIxMzAuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpjwvdGV4dD48L2c+Cjx0ZXh0IHg9IjEzMC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTMwLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+My48L3RleHQ+CjxnPjxyZWN0IHg9IjE1OCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTc4LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjU8L3RleHQ+PHRleHQgeD0iMTc4LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaM8L3RleHQ+PC9nPgo8dGV4dCB4PSIxNzguMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjQuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyMDYiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IHg9IjIyNi4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj45PC90ZXh0Pjx0ZXh0IHg9IjIyNi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iMjI2LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iIzE1ODAzZCI+4pyTPC90ZXh0Pgo8dGV4dCB4PSIyMjYuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj41LjwvdGV4dD4KPGc+PHJlY3QgeD0iMjU0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIyNTgiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjMwMiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzA2IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8Zz48cmVjdCB4PSIzNTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjM1NCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPHRleHQgeD0iMTQiIHk9IjE2OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+VHVybiB0aGVtIG92ZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0OjwvdGV4dD48dGV4dCB4PSIxNCIgeT0iMTg4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5BZnRlciA1IGNvbXBhcmlzb25zIHRoZSA5IGlzIGZvdW5kLjwvdGV4dD4KPC9zdmc+Cg==",rB=""+new URL("ss-vergleiche-UczNldcC.svg",import.meta.url).href,oB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPkNhbGwgYnkgdmFsdWU6IGEgY29weTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1iZXI8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZG91YmxlSXQ8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb3B5PC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTUwIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj54IGJlY29tZXMgMTAsIGJ1dCBudW1iZXIgc3RheXMgNS48L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNjgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPkxpa2UgYSBwaG90b2NvcHk6IHdyaXRpbmcgb24gdGhlIGNvcHk8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPmRvZXMgbm90IGNoYW5nZSB0aGUgb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5DYWxsIGJ5IHJlZmVyZW5jZTogdGhlIHNhbWUgYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+cm93PC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5jbGVhcjwvdGV4dD4KPHRleHQgeD0iMjYwIiB5PSIzMDAiPnNlYXRzPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5UaGVyZSBpcyBvbmx5IG9uZSBhcnJheS4gV2hhdCBjbGVhciBjaGFuZ2VzIHRocm91Z2ggc2VhdHMsPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDM0IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj50aGUgbWFpbiBwcm9ncmFtIHNlZXMgdW5kZXIgcm93LjwvdGV4dD4KPC9zdmc+Cg==",lB=""+new URL("zk-zeichen-CgUEhNoK.svg",import.meta.url).href,uB=""+new URL("grace-hopper-DltOT1I5.jpg",import.meta.url).href,mB=""+new URL("hedy-lamarr-MFZMAlPQ.jpg",import.meta.url).href,cB=""+new URL("ike-nassi-D2w47gvX.jpg",import.meta.url).href,dB=""+new URL("katherine-johnson-k17EjVTs.jpg",import.meta.url).href,hB=""+new URL("kino-saal-CYMOok4_.svg",import.meta.url).href,gB=""+new URL("kino-schleifen-DrTQV7dq.svg",import.meta.url).href,pB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlRhc3NlIGF1ZiBkZW4gVGlzY2ggc3RlbGxlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5adWNrZXIgZ2V3w7xuc2NodD88L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjE5NCI+WnVja2VyIGhpbmVpbmdlYmVuPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIyODUiPlRlZSBub2NoIHp1IGhlacOfPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjMyNy41IiB5PSIyODUiPjEgTWludXRlIHdhcnRlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5UZWUgdHJpbmtlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzk1Ij5FbmRlPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5qYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MiIgeT0iMTIyIiBmaWxsPSIjZDcwMDE1Ij5uZWluPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPmphPC90ZXh0PgogICAgPHRleHQgeD0iMTU2IiB5PSIzMjAiIGZpbGw9IiNkNzAwMTUiPm5laW48L3RleHQ+CiAgPC9nPgogIDwhLS0gTGVnZW5kZSAtLT4KICA8bGluZSB4MT0iMTAiIHkxPSI0MTgiIHgyPSIzOTAiIHkyPSI0MTgiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxnIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgPHJlY3QgeD0iNDAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiByeD0iOSIgZmlsbD0iI2QxZjJkOSIvPgogICAgPHJlY3QgeD0iMjIwIiB5PSI0MzAiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxOCIgZmlsbD0iI2U1ZjBmZiIvPgogICAgPHBhdGggZD0iTTU4IDQ1OCBMNzYgNDY5IEw1OCA0ODAgTDQwIDQ2OSBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8cGF0aCBkPSJNMjI2IDQ2MCBMMjU2IDQ2MCBMMjUwIDQ3OCBMMjIwIDQ3OCBaIiBmaWxsPSIjZjJlNmZmIi8+CiAgPC9nPgogIDxnIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiMzYTNhM2MiPgogICAgPHRleHQgeD0iODYiIHk9IjQ0MyI+U3RhcnQgb2RlciBFbmRlPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NDMiPkFud2Vpc3VuZzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPlZlcnp3ZWlndW5nPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVpbi0gb2RlciBBdXNnYWJlPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",fB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V29oaW4gbGFuZGV0IGRhcyBFbGVtZW50PzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij5vYmVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnVudGVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjIyNCIgeT0iNjIiPuKGkiBrb21tdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGF2b3I8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIga29tbXQgPHRzcGFuIGZvbnQtd2VpZ2h0PSI2MDAiPmRhaGludGVyPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZXJzZXR6dDwvdHNwYW4+IGRlbiBQbGF0emhhbHRlcjwvdGV4dD4KPC9zdmc+Cg==",xB=""+new URL("l03-lochkarte-beschriftet-7hmU_7ct.svg",import.meta.url).href,bB=""+new URL("l03-lochkarte-gzfFEatc.svg",import.meta.url).href,vB=""+new URL("l03-zuse-lochstreifen-B87kqGex.svg",import.meta.url).href,yB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMzM2IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByZWlzPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPk08L3RzcGFuPml0PHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPlM8L3RzcGFuPnRldWVyPC90ZXh0Pgo8bGluZSB4MT0iMTgyIiB5MT0iNTQiIHgyPSIxODIiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxsaW5lIHgxPSIyNTQiIHkxPSI1NCIgeDI9IjI1NCIgeTI9IjgyIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiLz4KPHBhdGggZD0iTTIwIDI3MiBINDQwIiBzdHJva2U9IiNlNWQzYjAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNTYgMTcyIEwxNTAgMjI2IiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUwIDIyNiBMMTU2IDI2MiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjE2MSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMzA0IDE3MiBMMzA4IDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTMwOCAyMjYgTDMwNCAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMzA4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIzMDkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNDAgQzEwNCAxNTAgMTA0IDE3NiAxMTAgMTk2IiBmaWxsPSJub25lIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxlbGxpcHNlIGN4PSIxMTAiIGN5PSIyMDAiIHJ4PSI1IiByeT0iOSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMTIwIDE3MiBDMTA4IDE1MiAxMTQgMTI4IDEzNCAxMjIgQzE0OCAxMjAgMTU0IDg0IDE4MiA4NCBDMjEwIDg0IDIwOCAxMjYgMjE4IDEyNCBDMjI4IDEyNiAyMjYgODQgMjU0IDg0IEMyODIgODQgMjg0IDEyMiAyOTQgMTI4IEMzMTYgMTMyIDMyNCAxNTggMzQwIDE1OCBDMzUyIDE1OCAzNTQgMTI0IDM1OCAxMTAgQzM2MiA5OCAzNzYgOTYgMzg4IDk5IEM0MDAgMTAyIDQwNiAxMDggNDA0IDExNiBDNDAyIDEyMyAzOTAgMTI0IDM4MCAxMjIgQzM3MiAxMjIgMzcwIDEyOCAzNzAgMTM2IEMzNzAgMTYyIDM2NCAxODQgMzQyIDE4NiBDMzI2IDE4OCAzMTYgMTgyIDMwNiAxNzggQzI0OCAxODggMTg4IDE4OCAxNDAgMTgyIEMxMzAgMTgwIDEyNCAxNzcgMTIwIDE3MiBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMzQgMTcyIEwxMjggMjI2IiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTI4IDIyNiBMMTM0IDI2MiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxMjgiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjEzOSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMjg0IDE3MiBMMjg4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTI4OCAyMjYgTDI4NCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMjg4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIyODkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTM2NiAxMDMgTDM2MiA5MiBMMzc0IDEwMCBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzODIiIGN5PSIxMDciIHI9IjMuMiIgZmlsbD0iIzFjMWMxZSIvPgo8cGF0aCBkPSJNMzc3IDEwNCBRMzgyIDEwMSAzODcgMTA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTggMTA3IHE0IDEgNSA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTIgMTE5IFEzOTggMTE4IDQwMyAxMTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzdhNTUzMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==",wB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWx0ZXIgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YWx0ZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5XZXJ0PC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0ZW50eXA8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPsOcYmVyIGRlbiBOYW1lbiBrb21tc3QgZHUgYW4gZGVuIFdlcnQuPC90ZXh0Pgo8L3N2Zz4K",zB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cHVua3RlPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cHVua3RlICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCByZWNodHMgYXVzcmVjaG5lbjogMTAgKyA1ID0gMTU8L3RleHQ+CiAgPHBhdGggZD0iTTI1MCA4MiBDMjMwIDMwLCA5MCAzMCwgNjQgODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICA8dGV4dCB4PSIxNjAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIj7ikaEgRXJnZWJuaXMgbGlua3Mgc3BlaWNoZXJuPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxNjQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3Ii8+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnB1bmt0ZSB2b3JoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xMDwvdHNwYW4+ICAg4oaSICAgcHVua3RlIG5hY2hoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",IB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGlua3M8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+U2FmdDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aGlsZjwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bGVlcjwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cmVjaHRzPC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5XYXNzZXI8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iNzAiIHk9IjI0NyI+MTogaGlsZiA9IGxpbmtzPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNDciPjI6IGxpbmtzID0gcmVjaHRzPC90ZXh0PgogICAgPHRleHQgeD0iMzMwIiB5PSIyNDciPjM6IHJlY2h0cyA9IGhpbGY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",kB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+Z8O8bHRpZzwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPnVuZ8O8bHRpZzwvdGV4dD48dGV4dCB4PSIzNjAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj51bmfDvGx0aWc8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGUgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGUgJmx0Oz0gNjwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RlICZsdDsgMSB8fCBub3RlICZndDsgNjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",SB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMTkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+CiAgPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIxOTAiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB4PSIyMCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmE8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmI8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIyMjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmEgJmFtcDsmYW1wOyBiPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNzAwIj5hIHx8IGI8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPiFhPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0NiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSI2MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjE0MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyNjAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIzNDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjM4MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjEwMCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzMDAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjExMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjE4MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTQyIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMjIwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8bGluZSB4MT0iMTgwIiB5MT0iMTQiIHgyPSIxODAiIHkyPSIxNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIzIi8+Cjwvc3ZnPgo=",TB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5BYmxhdWYgZGVyIFdoaWxlLVNjaGxlaWZlPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNDQiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSIyMCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaAgQmVkaW5ndW5nIHByw7xmZW48L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgSW5oYWx0IGF1c2bDvGhyZW48L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53aWVkZXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bmFjaCBvYmVuPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+d2VpdGVyIHVudGVyIGRlciBTY2hsZWlmZTwvdGV4dD4KPC9zdmc+Cg==",_B="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+a29wZmdlc3RldWVydCAoV2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmZ1w59nZXN0ZXVlcnQgKERvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBCZWRpbmd1bmc8L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBJbmhhbHQ8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluaGFsdDwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgQmVkaW5ndW5nPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5Jc3QgZGllIEJlZGluZ3VuZyBnbGVpY2ggZmFsc2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5sw6R1ZnQgZGVyIEluaGFsdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+bmllPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5EZXIgSW5oYWx0IGzDpHVmdCBpbW1lcjwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm1pbmRlc3RlbnMgZWlubWFsPC90c3Bhbj4uPC90ZXh0Pgo8L3N2Zz4K",jB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4obnVyIGVpbm1hbCk8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIEJlZGluZ3VuZyBwcsO8ZmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGiIEluaGFsdCBhdXNmw7xocmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGjIFNjaHJpdHQsIHouIEIuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+enVyw7xjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj56dSDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZmVydGlnPC90ZXh0Pgo8L3N2Zz4K",CB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gemFobGVuID0gezIsIDQsIDYsIDgsIDEwfTwvdGV4dD4KICA8dGV4dCB4PSIyMCIgeT0iNTQiIGZpbGw9IiM2ZTZlNzMiIGZvbnQtc2l6ZT0iMTIiPkluZGV4PC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5XZXJ0PC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPjxsaW5lIHgxPSI5MCIgeTE9IjE0MCIgeDI9IjkwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjMzMCIgeTE9IjE0MCIgeDI9IjMzMCIgeTI9IjExMiIvPjwvZz4KICA8ZyBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRleHQgeD0iOTAiIHk9IjE1NiI+emFobGVuWzBdIGlzdCAyPC90ZXh0Pjx0ZXh0IHg9IjMzMCIgeT0iMTU2Ij56YWhsZW5bNF0gaXN0IDEwPC90ZXh0PjwvZz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+NSBGw6RjaGVyLCBnZXrDpGhsdCB3aXJkIGFiIDA6IGRlciBsZXR6dGUgSW5kZXggaXN0IDQuPC90ZXh0Pgo8L3N2Zz4K",AB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPnJlY2huZXIuY3BwPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iNTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMzYTNhM2MiPlF1ZWxsY29kZSBpbiBDKys8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSI4MCIgeTI9Ijk0Ii8+CiAgICA8bGluZSB4MT0iODAiIHkxPSIxMjYiIHgyPSI4MCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMjIwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxMjYiIHgyPSIyMjAiIHkyPSIxNTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjM2MCIgeTI9Ijk0Ii8+CiAgICA8bGluZSB4MT0iMzYwIiB5MT0iMTI2IiB4Mj0iMzYwIiB5Mj0iMTU2Ii8+CiAgPC9nPgogIDxyZWN0IHg9IjE4IiB5PSI5NiIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzMCIgcng9IjE1IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgPHRleHQgeD0iODAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Q29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjE4MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+TWFzY2hpbmVuY29kZTwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMTk0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5XaW5kb3dzPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iOTYiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzAiIHJ4PSIxNSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5Db21waWxlcjwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPk1hc2NoaW5lbmNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Q29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5NYXNjaGluZW5jb2RlPC90ZXh0PgogIDxyZWN0IHg9IjI5OCIgeT0iMTk0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+TGludXg8L3RleHQ+CiAgPHRleHQgeD0iMjIwIiB5PSIyNTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc3R5bGU9Iml0YWxpYyI+RsO8ciBqZWRlcyBTeXN0ZW08L3RleHQ+CiAgPHRleHQgeD0iMjIwIiB5PSIyNzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc3R5bGU9Iml0YWxpYyI+bmV1IMO8YmVyc2V0emVuPC90ZXh0Pgo8L3N2Zz4K",PB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPkVpbm1hbGVpbnMuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5RdWVsbGNvZGUsIGbDvHIgTWVuc2NoZW48L3RleHQ+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMDQiIHdpZHRoPSIyMjAiIGhlaWdodD0iNDgiIHJ4PSI2IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTI0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC13ZWlnaHQ9IjYwMCI+RWlubWFsZWlucy5jbGFzczwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjE0MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzNhM2EzYyI+Qnl0ZWNvZGU6IENBIEZFIEJBIEJFIOKApjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjIyMCIgeTI9IjEwMiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjE1MiIgeDI9IjgwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMjIwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMzYwIiB5Mj0iMTk2Ii8+CiAgPC9nPgogIDx0ZXh0IHg9IjIzMCIgeT0iODYiPkNvbXBpbGVyIGphdmFjPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMjM0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5XaW5kb3dzPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iMTk4IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iMjM0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjI1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+bWFjT1M8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5FaW5tYWwgc2NocmVpYmVuLDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjMxOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj7DvGJlcmFsbCBhdXNmw7xocmVuPC90ZXh0Pgo8L3N2Zz4K",OB=""+new URL("margaret-hamilton-pYPKs1sU.jpg",import.meta.url).href,DB=""+new URL("mvc-klick-KmFKqxH-.svg",import.meta.url).href,MB=""+new URL("aufgabe-mehrwertsteuer-KUkerRBd.svg",import.meta.url).href,BB=""+new URL("kino-saal-BOvcmdzb.svg",import.meta.url).href,ZB=""+new URL("kino-schleifen-Ci9yPnbo.svg",import.meta.url).href,LB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5JbsOtY2lvPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSI3NiI+UMO0ciB1bWEgY2jDoXZlbmEgbmEgbWVzYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5RdWVyIGHDp8O6Y2FyPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5KdW50YXIgYcOnw7pjYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+Q2jDoSBtdWl0byBxdWVudGU/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+RXNwZXJhciAxIG1pbnV0bzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5CZWJlciBvIGNow6E8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjM5NSI+RmltPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIyNDIiIHk9IjEyMiIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MCIgeT0iMjc0IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjMyMCIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5JbsOtY2lvIG91IGZpbTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI2NiIgeT0iNDQzIj5JbnN0cnXDp8OjbzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPkRlY2lzw6NvPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVudHJhZGEgb3Ugc2HDrWRhPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",WB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+T25kZSBmaWNhIG8gZWxlbWVudG8/PC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RiZWFmZSIvPgogIDxyZWN0IHg9IjIwIiB5PSI3NSIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc1IiB4Mj0iMjEwIiB5Mj0iNzUiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLWRhc2hhcnJheT0iNCAzIi8+CiAgPHJlY3QgeD0iMjAiIHk9IjQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjcwIiBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxZDRlZDgiPm1ldGFkZSBkZSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPm1ldGFkZSBkZSBiYWl4bzwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YW50ZXM8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGVwb2lzPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+c3Vic3RpdHVpLW88L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg==",EB=""+new URL("l03-lochkarte-beschriftet-D1QjqGFo.svg",import.meta.url).href,NB=""+new URL("l03-lochkarte-BSn6oWaS.svg",import.meta.url).href,FB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMjY0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByZWNvPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPkM8L3RzcGFuPm9tPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPkk8L3RzcGFuPnZhPC90ZXh0Pgo8bGluZSB4MT0iMTgyIiB5MT0iNTQiIHgyPSIxODIiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxsaW5lIHgxPSIyNTQiIHkxPSI1NCIgeDI9IjI1NCIgeTI9IjgyIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiLz4KPHBhdGggZD0iTTIwIDI3MiBINDQwIiBzdHJva2U9IiNlNWQzYjAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNTYgMTcyIEwxNTAgMjI2IiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUwIDIyNiBMMTU2IDI2MiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjE2MSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMzA0IDE3MiBMMzA4IDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTMwOCAyMjYgTDMwNCAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMzA4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIzMDkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNDAgQzEwNCAxNTAgMTA0IDE3NiAxMTAgMTk2IiBmaWxsPSJub25lIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxlbGxpcHNlIGN4PSIxMTAiIGN5PSIyMDAiIHJ4PSI1IiByeT0iOSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMTIwIDE3MiBDMTA4IDE1MiAxMTQgMTI4IDEzNCAxMjIgQzE0OCAxMjAgMTU0IDg0IDE4MiA4NCBDMjEwIDg0IDIwOCAxMjYgMjE4IDEyNCBDMjI4IDEyNiAyMjYgODQgMjU0IDg0IEMyODIgODQgMjg0IDEyMiAyOTQgMTI4IEMzMTYgMTMyIDMyNCAxNTggMzQwIDE1OCBDMzUyIDE1OCAzNTQgMTI0IDM1OCAxMTAgQzM2MiA5OCAzNzYgOTYgMzg4IDk5IEM0MDAgMTAyIDQwNiAxMDggNDA0IDExNiBDNDAyIDEyMyAzOTAgMTI0IDM4MCAxMjIgQzM3MiAxMjIgMzcwIDEyOCAzNzAgMTM2IEMzNzAgMTYyIDM2NCAxODQgMzQyIDE4NiBDMzI2IDE4OCAzMTYgMTgyIDMwNiAxNzggQzI0OCAxODggMTg4IDE4OCAxNDAgMTgyIEMxMzAgMTgwIDEyNCAxNzcgMTIwIDE3MiBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMzQgMTcyIEwxMjggMjI2IiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTI4IDIyNiBMMTM0IDI2MiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxMjgiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjEzOSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMjg0IDE3MiBMMjg4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTI4OCAyMjYgTDI4NCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMjg4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIyODkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTM2NiAxMDMgTDM2MiA5MiBMMzc0IDEwMCBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzODIiIGN5PSIxMDciIHI9IjMuMiIgZmlsbD0iIzFjMWMxZSIvPgo8cGF0aCBkPSJNMzc3IDEwNCBRMzgyIDEwMSAzODcgMTA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTggMTA3IHE0IDEgNSA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTIgMTE5IFEzOTggMTE4IDQwMyAxMTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzdhNTUzMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==",JB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgaWRhZGUgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aWRhZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5WYWxvcjwvdGV4dD4KICA8dGV4dCB4PSIzMTYiIHk9IjExOSI+Tm9tZTwvdGV4dD4KICA8dGV4dCB4PSI4IiB5PSIxNTYiPlRpcG8gZGUgZGFkb3M8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPlBlbG8gbm9tZSBjaGVnYXMgYW8gdmFsb3IuPC90ZXh0Pgo8L3N2Zz4K",RB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9udG9zPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCBjYWxjdWxhciBhIGRpcmVpdGE6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIGd1YXJkYXIgbyByZXN1bHRhZG8gw6AgZXNxdWVyZGE8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zIGFudGVzOiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPiAgIOKGkiAgIHBvbnRvcyBkZXBvaXM6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",GB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZXNxdWVyZGE8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+c3VtbzwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YXV4PC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52YXppbzwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZGlyZWl0YTwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+w6FndWE8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iMjAwIiB5PSIyNTAiPjE6IGF1eCA9IGVzcXVlcmRhPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNjgiPjI6IGVzcXVlcmRhID0gZGlyZWl0YTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjg2Ij4zOiBkaXJlaXRhID0gYXV4PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",HB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzAwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iMTAwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyNCIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc0IiB4Mj0iMzgwIiB5Mj0iNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPGxpbmUgeDE9IjUwIiB5MT0iNjgiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MDwvdGV4dD4KICA8bGluZSB4MT0iMTAwIiB5MT0iNjgiIHgyPSIxMDAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4xPC90ZXh0PgogIDxsaW5lIHgxPSIxNTAiIHkxPSI2OCIgeDI9IjE1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjI8L3RleHQ+CiAgPGxpbmUgeDE9IjIwMCIgeTE9IjY4IiB4Mj0iMjAwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MzwvdGV4dD4KICA8bGluZSB4MT0iMjUwIiB5MT0iNjgiIHgyPSIyNTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj40PC90ZXh0PgogIDxsaW5lIHgxPSIzMDAiIHkxPSI2OCIgeDI9IjMwMCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMwMCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjU8L3RleHQ+CiAgPGxpbmUgeDE9IjM1MCIgeTE9IjY4IiB4Mj0iMzUwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NjwvdGV4dD4KICA8Y2lyY2xlIGN4PSIxMDAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMwMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dsOhbGlkYTwvdGV4dD4KICA8dGV4dCB4PSI1MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludsOhbGlkYTwvdGV4dD48dGV4dCB4PSIzNTAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnbDoWxpZGE8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGEgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGEgJmx0Oz0gNTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RhICZsdDsgMSB8fCBub3RhICZndDsgNTwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",VB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Db21vIGZ1bmNpb25hIG8gY2ljbG8gd2hpbGU8L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSI0NCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI0MCIgcng9IjIwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCB2ZXJpZmljYXIgYSBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTI4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE1MyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIGV4ZWN1dGFyIG8gaW50ZXJpb3I8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52b2x0YXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+cGFyYSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+Y29udGludWFyIHBvciBiYWl4byBkbyBjaWNsbzwvdGV4dD4KPC9zdmc+Cg==",qB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHLDqS10ZXN0ZSAod2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnDDs3MtdGVzdGUgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjM1IiB5PSIxMjQiIHdpZHRoPSIxMzAiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgaW50ZXJpb3I8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGludGVyaW9yPC90ZXh0PgogIDxyZWN0IHg9IjIzNSIgeT0iMTI0IiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjM2IiByeD0iMTgiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBjb25kacOnw6NvPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5TZSBhIGNvbmRpw6fDo28gZm9yIGxvZ28gZmFsc2EsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5vIGludGVyaW9yIDx0c3BhbiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj5udW5jYTwvdHNwYW4+IMOpIGV4ZWN1dGFkby48L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPk8gaW50ZXJpb3Igw6kgc2VtcHJlIGV4ZWN1dGFkbzwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPnBlbG8gbWVub3MgdW1hIHZlejwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",QB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluw61jaW8gPHRzcGFuIGZpbGw9IiM2ZTZlNzMiPihzw7MgdW1hIHZleik8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIHZlcmlmaWNhciBhIGNvbmRpw6fDo288L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMzgiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaIgZXhlY3V0YXIgbyBpbnRlcmlvcjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBwYXNzbywgcC4gZXguIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+dm9sdGFyPC90ZXh0PgogIDx0ZXh0IHg9IjQ4IiB5PSIxNzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPmFvIOKRoTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9Ijg0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIzMzYiIHk9Ijk4Ij5maW08L3RleHQ+Cjwvc3ZnPgo=",UB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtZXJvcyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj7DjW5kaWNlPC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5WYWxvcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj48bGluZSB4MT0iOTAiIHkxPSIxNDAiIHgyPSI5MCIgeTI9IjExMiIvPjxsaW5lIHgxPSIzMzAiIHkxPSIxNDAiIHgyPSIzMzAiIHkyPSIxMTIiLz48L2c+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjx0ZXh0IHg9IjkwIiB5PSIxNTYiPm51bWVyb3NbMF0gw6kgMjwvdGV4dD48dGV4dCB4PSIzMzAiIHk9IjE1NiI+bnVtZXJvc1s0XSDDqSAxMDwvdGV4dD48L2c+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPjUgcG9zacOnw7VlcywgY29udGEtc2UgYSBwYXJ0aXIgZGUgMDogbyDDumx0aW1vIMOtbmRpY2Ugw6kgNC48L3RleHQ+Cjwvc3ZnPgo=",$B="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPmNhbGN1bGFkb3JhLmNwcDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5jw7NkaWdvLWZvbnRlIGVtIEMrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjgwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjEyNiIgeDI9IjgwIiB5Mj0iMTU2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSIyMjAiIHkyPSI5NCIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjEyNiIgeDI9IjIyMCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMzYwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIzNjAiIHkxPSIxMjYiIHgyPSIzNjAiIHkyPSIxNTYiLz4KICA8L2c+CiAgPHJlY3QgeD0iMTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb21waWxhZG9yPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5NCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+V2luZG93czwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsYWRvcjwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsYWRvcjwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5Db21waWxhciBkZSBub3ZvPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjc4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPnBhcmEgY2FkYSBzaXN0ZW1hPC90ZXh0Pgo8L3N2Zz4K",YB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPlRhYnVhZGEuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5jw7NkaWdvLWZvbnRlLCBwYXJhIHBlc3NvYXM8L3RleHQ+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMDQiIHdpZHRoPSIyMjAiIGhlaWdodD0iNDgiIHJ4PSI2IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTI0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC13ZWlnaHQ9IjYwMCI+VGFidWFkYS5jbGFzczwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjE0MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzNhM2EzYyI+Ynl0ZWNvZGU6IENBIEZFIEJBIEJFIOKApjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjIyMCIgeTI9IjEwMiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjE1MiIgeDI9IjgwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMjIwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMzYwIiB5Mj0iMTk2Ii8+CiAgPC9nPgogIDx0ZXh0IHg9IjIzMCIgeT0iODYiPmNvbXBpbGFkb3IgamF2YWM8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvd3M8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjIzNCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPkxpbnV4PC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPkVzY3JldmVyIHVtYSB2ZXosPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMzE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPmV4ZWN1dGFyIGVtIHF1YWxxdWVyIGxhZG88L3RleHQ+Cjwvc3ZnPgo=",XB=""+new URL("mvc-klick-DKonBpbs.svg",import.meta.url).href,KB=""+new URL("schiffe-versenken-iEBDHIxD.svg",import.meta.url).href,eZ=""+new URL("ss-binaere-suche-DVVS2SNc.svg",import.meta.url).href,tZ=""+new URL("ss-bubblesort-AFDcFDah.svg",import.meta.url).href,nZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Qcm9jdXJhLXNlIG8gOS4gQXMgY2FydGFzIGVzdMOjbyBiYXJhbGhhZGFzLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5WaXJhciBkYSBlc3F1ZXJkYSBwYXJhIGEgZGlyZWl0YTo8L3RleHQ+PHRleHQgeD0iMTQiIHk9IjE4OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+QXDDs3MgNSBjb21wYXJhw6fDtWVzLCBvIDkgw6kgZW5jb250cmFkby48L3RleHQ+Cjwvc3ZnPgo=",iZ=""+new URL("ss-vergleiche-DWgkIvLr.svg",import.meta.url).href,aZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPlBhc3NhZ2VtIHBvciB2YWxvcjogdW1hIGPDs3BpYTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1lcm88L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZHVwbGljYXI8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggcGFzc2EgYSAxMCwgbWFzIG51bWVybyBmaWNhIDUuPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTY4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5Db21vIHVtYSBmb3RvY8OzcGlhOiBlc2NyZXZlciBuYSBjw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPm7Do28gYWx0ZXJhIG8gb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5QYXNzYWdlbSBwb3IgcmVmZXLDqm5jaWE6IG8gbWVzbW8gYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+ZmlsYTwvdGV4dD4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjMWQ0ZWQ4Ii8+CjxyZWN0IHg9IjI1MCIgeT0iMjUyIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYyIiByeD0iOCIgZmlsbD0iI2ZmZjdlZCIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyNjAiIHk9IjI3MiIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+bGltcGFyPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9IjMwMCI+bHVnYXJlczwvdGV4dD4KPGNpcmNsZSBjeD0iMzkwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjYjQ1MzA5Ii8+CjxwYXRoIGQ9Ik0xNTAgMzAwIEwxNTAgMzQwIEwxNDAgMzUyIiBmaWxsPSJub25lIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI2IpIi8+CjxwYXRoIGQ9Ik0zOTAgMzAwIEwzOTAgMzQwIEwzMjIgMzU0IiBmaWxsPSJub25lIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI28pIi8+CjxyZWN0IHg9IjkwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjE1MCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyMTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMjcwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9IjEyMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTgwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIyNDAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjMwMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQxNiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+U8OzIGjDoSB1bSBhcnJheS4gTyBxdWUgbGltcGFyIGFsdGVyYSBhdHJhdsOpcyBkZSBsdWdhcmVzLDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+byBwcm9ncmFtYSBwcmluY2lwYWwgdsOqIGVtIGZpbGEuPC90ZXh0Pgo8L3N2Zz4K",sZ=""+new URL("zk-zeichen-8efNmpGx.svg",import.meta.url).href,rZ=""+new URL("schiffe-versenken-CXt1SF0S.svg",import.meta.url).href,oZ=""+new URL("ss-binaere-suche-CPsLGldq.svg",import.meta.url).href,lZ=""+new URL("ss-bubblesort-Dic2ZfaT.svg",import.meta.url).href,uZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5HZXN1Y2h0OiBkaWUgOS4gRGllIEthcnRlbiBzaW5kIGdlbWlzY2h0LjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5Wb24gbGlua3MgbmFjaCByZWNodHMgdW1kcmVoZW46PC90ZXh0Pjx0ZXh0IHg9IjE0IiB5PSIxODgiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiM2ZTZlNzMiPk5hY2ggNSBWZXJnbGVpY2hlbiBpc3QgZGllIDkgZ2VmdW5kZW4uPC90ZXh0Pgo8L3N2Zz4K",mZ=""+new URL("ss-vergleiche-DRqzU2TZ.svg",import.meta.url).href,cZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPldlcnTDvGJlcmdhYmU6IGVpbmUgS29waWU8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNlZmY2ZmYiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjAiIHk9IjU4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWQ0ZWQ4Ij5IYXVwdHByb2dyYW1tPC90ZXh0Pgo8dGV4dCB4PSIyMCIgeT0iOTgiPnphaGw8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+dmVyZG9wcGxlPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9Ijk4Ij54PC90ZXh0Pgo8cmVjdCB4PSIyODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMzIwIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRzcGFuIGZpbGw9IiM2ZTZlNzMiIHRleHQtZGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIj41PC90c3Bhbj4gPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj48L3RleHQ+CjxsaW5lIHgxPSIxMjgiIHkxPSI5MyIgeDI9IjI0OCIgeTI9IjkzIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiIG1hcmtlci1lbmQ9InVybCgjaykiLz4KPHRleHQgeD0iMjEwIiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+S29waWU8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggd2lyZCAxMCwgYWJlciB6YWhsIGJsZWlidCA1LjwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE2OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+V2llIGJlaSBlaW5lciBGb3Rva29waWU6IFdlciBhdWYgZGVyIEtvcGllIHNjaHJlaWJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE4NiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+w6RuZGVydCBkYXMgT3JpZ2luYWwgbmljaHQuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5SZWZlcmVuesO8YmVyZ2FiZTogZGFzc2VsYmUgQXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPkhhdXB0cHJvZ3JhbW08L3RleHQ+Cjx0ZXh0IHg9IjIwIiB5PSIzMDAiPnJlaWhlPC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5sZWVyZW48L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iMzAwIj5wbGFldHplPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5FcyBnaWJ0IG51ciBlaW4gQXJyYXkuIFdhcyBsZWVyZW4gw7xiZXIgcGxhZXR6ZSDDpG5kZXJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+c2llaHQgZGFzIEhhdXB0cHJvZ3JhbW0gdW50ZXIgcmVpaGUuPC90ZXh0Pgo8L3N2Zz4K",dZ=""+new URL("zk-zeichen-vYvc3iJg.svg",import.meta.url).href;function hZ(i){const e=[];for(const t of i.replace(/\r\n/g,` +`,OZ=""+new URL("ada-lovelace-DS_988PF.jpg",import.meta.url).href,MZ=""+new URL("aufgabe-mehrwertsteuer-C-TFTrWz.svg",import.meta.url).href,ZZ=""+new URL("ben-shneiderman-Cev5hrqS.jpg",import.meta.url).href,DZ=""+new URL("caesar-ascii-Bix93F5i.svg",import.meta.url).href,BZ=""+new URL("caesar-scheibe-CMRPZI6Y.svg",import.meta.url).href,LZ=""+new URL("caesar-verschiebung-DIR-lDbs.svg",import.meta.url).href,WZ=""+new URL("aufgabe-mehrwertsteuer-CnrZ00ny.svg",import.meta.url).href,EZ=""+new URL("kino-saal-C8zaJk4X.svg",import.meta.url).href,NZ=""+new URL("kino-schleifen-D7sfo9iK.svg",import.meta.url).href,JZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlB1dCBhIGN1cCBvbiB0aGUgdGFibGU8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjEzMyI+U3VnYXIgd2FudGVkPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5BZGQgc3VnYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+VGVhIHN0aWxsIHRvbyBob3Q/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+V2FpdCAxIG1pbnV0ZTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5EcmluayB0aGUgdGVhPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIzOTUiPkVuZDwvdGV4dD4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjYwMCI+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjE2OCIgZmlsbD0iIzI0OGEzZCI+eWVzPC90ZXh0PgogICAgPHRleHQgeD0iMjQyIiB5PSIxMjIiIGZpbGw9IiNkNzAwMTUiPm5vPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPnllczwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMzIwIiBmaWxsPSIjZDcwMDE1Ij5ubzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5TdGFydCBvciBlbmQ8L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ0MyI+U3RhdGVtZW50PC90ZXh0PgogICAgPHRleHQgeD0iODYiIHk9IjQ3MyI+RGVjaXNpb248L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ3MyI+SW5wdXQgb3Igb3V0cHV0PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",FZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V2hlcmUgZG9lcyB0aGUgZWxlbWVudCBsYW5kPzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij50b3AgaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIxMTUiIHk9Ijk3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj5ib3R0b20gaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+aW4gZnJvbnQ8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YWZ0ZXI8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTMyIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2Ij7DuDwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjE1NyI+4oaSIDx0c3BhbiBmb250LXdlaWdodD0iNjAwIj5yZXBsYWNlczwvdHNwYW4+IGl0PC90ZXh0Pgo8L3N2Zz4K",RZ=""+new URL("l03-lochkarte-beschriftet-BjBFZjzb.svg",import.meta.url).href,GZ=""+new URL("l03-lochkarte-BB3rWQOm.svg",import.meta.url).href,HZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMjg4IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByaWNlPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPlc8L3RzcGFuPml0aDx0c3BhbiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj5UPC90c3Bhbj5heDwvdGV4dD4KPGxpbmUgeDE9IjE4MiIgeTE9IjU0IiB4Mj0iMTgyIiB5Mj0iODIiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIvPgo8bGluZSB4MT0iMjc4IiB5MT0iNTQiIHgyPSIyNzgiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxwYXRoIGQ9Ik0yMCAyNzIgSDQ0MCIgc3Ryb2tlPSIjZTVkM2IwIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTU2IDE3MiBMMTUwIDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTE1MCAyMjYgTDE1NiAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIxNjEiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTMyOCAxNzIgTDMzMiAyMjYiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zMzIgMjI2IEwzMjggMjYyIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxjaXJjbGUgY3g9IjMzMiIgY3k9IjIyNiIgcj0iNiIgZmlsbD0iIzdhNTUzMCIgb3BhY2l0eT0iMC41NSIvPgo8ZWxsaXBzZSBjeD0iMzMzIiBjeT0iMjY3IiByeD0iMTEiIHJ5PSI1IiBmaWxsPSIjN2E1NTMwIi8+CjxwYXRoIGQ9Ik0xMjAgMTQwIEMxMDQgMTUwIDEwNCAxNzYgMTEwIDE5NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8ZWxsaXBzZSBjeD0iMTEwIiBjeT0iMjAwIiByeD0iNSIgcnk9IjkiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNzIgQzEwOCAxNTIgMTE0IDEyOCAxMzQgMTIyIEMxNDggMTIwIDE1NCA4NCAxODIgODQgQzIxMCA4NCAyMDggMTI2IDIzMCAxMjQgQzI1MiAxMjYgMjUwIDg0IDI3OCA4NCBDMzA2IDg0IDMwOCAxMjIgMzE4IDEyOCBDMzQwIDEzMiAzNDggMTU4IDM2NCAxNTggQzM3NiAxNTggMzc4IDEyNCAzODIgMTEwIEMzODYgOTggNDAwIDk2IDQxMiA5OSBDNDI0IDEwMiA0MzAgMTA4IDQyOCAxMTYgQzQyNiAxMjMgNDE0IDEyNCA0MDQgMTIyIEMzOTYgMTIyIDM5NCAxMjggMzk0IDEzNiBDMzk0IDE2MiAzODggMTg0IDM2NiAxODYgQzM1MCAxODggMzQwIDE4MiAzMzAgMTc4IEMyNjAgMTg4IDIwMCAxODggMTQwIDE4MiBDMTMwIDE4MCAxMjQgMTc3IDEyMCAxNzIgWiIgZmlsbD0iI2QyYTU2YSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTM0IDE3MiBMMTI4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTEyOCAyMjYgTDEzNCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMTI4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIxMzkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTMwOCAxNzIgTDMxMiAyMjYiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zMTIgMjI2IEwzMDggMjYyIiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxjaXJjbGUgY3g9IjMxMiIgY3k9IjIyNiIgcj0iNiIgZmlsbD0iIzdhNTUzMCIgb3BhY2l0eT0iMC41NSIvPgo8ZWxsaXBzZSBjeD0iMzEzIiBjeT0iMjY3IiByeD0iMTEiIHJ5PSI1IiBmaWxsPSIjN2E1NTMwIi8+CjxwYXRoIGQ9Ik0zOTAgMTAzIEwzODYgOTIgTDM5OCAxMDAgWiIgZmlsbD0iI2QyYTU2YSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGNpcmNsZSBjeD0iNDA2IiBjeT0iMTA3IiByPSIzLjIiIGZpbGw9IiMxYzFjMWUiLz4KPHBhdGggZD0iTTQwMSAxMDQgUTQwNiAxMDEgNDExIDEwNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNDIyIDEwNyBxNCAxIDUgNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjN2E1NTMwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNDE2IDExOSBRNDIyIDExOCA0MjcgMTE3IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=",VZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWdlID0gMTQ8L3RleHQ+CiAgPHBhdGggZD0iTTEzMCA3MCBMMTcwIDUwIEwzMDAgNTAgTDI2MCA3MCBaIiBmaWxsPSIjYzk4YTNjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE4MCIgeT0iMzQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI1MCIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMDIiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjIwIiBmb250LXdlaWdodD0iNzAwIj4xNDwvdGV4dD4KICA8cmVjdCB4PSIxMzAiIHk9IjcwIiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2U5Yjg3MiIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBkPSJNMjYwIDcwIEwzMDAgNTAgTDMwMCAxNTAgTDI2MCAxNzAgWiIgZmlsbD0iI2Q0OWE0YyIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cmVjdCB4PSIxNTAiIHk9IjEwMCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjOGE1YTFmIi8+CiAgPHRleHQgeD0iMTk1IiB5PSIxMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmFnZTwvdGV4dD4KICA8cmVjdCB4PSIxMzgiIHk9IjE0MiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjIwIiByeD0iMTAiIGZpbGw9IiMwMDdhZmYiLz4KICA8dGV4dCB4PSIxNTUiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMiIgZmlsbD0iI2ZmZmZmZiIgZm9udC13ZWlnaHQ9IjYwMCI+aW50PC90ZXh0PgogIDxnIHN0cm9rZT0iIzZlNmU3MyI+CiAgICA8bGluZSB4MT0iMzEwIiB5MT0iNDgiIHgyPSIyMjYiIHkyPSI1MiIvPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjExNSIgeDI9IjI0MiIgeTI9IjExNSIvPgogICAgPGxpbmUgeDE9IjgwIiB5MT0iMTUyIiB4Mj0iMTM0IiB5Mj0iMTUyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjMxNiIgeT0iNTIiPlZhbHVlPC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0YSB0eXBlPC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMTk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgbmFtZSBnZXRzIHlvdSB0byB0aGUgdmFsdWUuPC90ZXh0Pgo8L3N2Zz4K",QZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9pbnRzPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCB3b3JrIG91dCB0aGUgcmlnaHQ6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIHN0b3JlIHRoZSByZXN1bHQgb24gdGhlIGxlZnQ8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzIGJlZm9yZTogPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj4gICDihpIgICBwb2ludHMgYWZ0ZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",qZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGVmdDwvdGV4dD4KICA8dGV4dCB4PSI3NSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5qdWljZTwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+dGVtcDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+ZW1wdHk8L3RleHQ+CiAgPHRleHQgeD0iMzI1IiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnJpZ2h0PC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53YXRlcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik04OCAxMDQgQzExMCA3MCwgMTYwIDcwLCAxODYgMTA0Ii8+CiAgICA8cGF0aCBkPSJNMzE4IDEwNCBDMjcwIDE1LCAxMzAgMTUsIDgyIDEwNCIvPgogICAgPHBhdGggZD0iTTIxNCAxMDQgQzI0MCA3MCwgMjkwIDcwLCAzMTIgMTA0Ii8+CiAgPC9nPgogIDxnIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPGNpcmNsZSBjeD0iMTM3IiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIxMzciIHk9Ijg1Ij4xPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMzgiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyMDAiIHk9IjQzIj4yPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjYzIiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyNjMiIHk9Ijg1Ij4zPC90ZXh0PgogIDwvZz4KICA8ZyB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMiI+CiAgICA8dGV4dCB4PSI3MCIgeT0iMjQ3Ij4xOiB0ZW1wID0gbGVmdDwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjQ3Ij4yOiBsZWZ0ID0gcmlnaHQ8L3RleHQ+CiAgICA8dGV4dCB4PSIzMzAiIHk9IjI0NyI+MzogcmlnaHQgPSB0ZW1wPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",UZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dmFsaWQ8L3RleHQ+CiAgPHRleHQgeD0iNDAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnZhbGlkPC90ZXh0Pjx0ZXh0IHg9IjM2MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludmFsaWQ8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPmdyYWRlICZndDs9IDEgJmFtcDsmYW1wOyBncmFkZSAmbHQ7PSA2PC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIxNDIiIGZpbGw9IiNiOTFjMWMiPmdyYWRlICZsdDsgMSB8fCBncmFkZSAmZ3Q7IDY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",YZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Ib3cgdGhlIHdoaWxlIGxvb3AgcnVuczwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjQ0IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iMjAiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGNoZWNrIHRoZSBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgcnVuIHRoZSBpbnNpZGU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5iYWNrPC90ZXh0PgogIDx0ZXh0IHg9IjM4IiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPnRvIHRoZSB0b3A8L3RleHQ+CiAgPHRleHQgeD0iMzQ4IiB5PSIxMzQiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmZhbHNlPC90ZXh0PgogIDx0ZXh0IHg9IjI3NiIgeT0iMjA1IiB0ZXh0LWFuY2hvcj0iZW5kIj5jb250aW51ZSBiZWxvdyB0aGUgbG9vcDwvdGV4dD4KPC9zdmc+Cg==",$Z="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHJlLXRlc3QgKHdoaWxlKTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5wb3N0LXRlc3QgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBpbnNpZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY29uZGl0aW9uPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5JZiB0aGUgY29uZGl0aW9uIGlzIGZhbHNlIGF0IG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50aGUgaW5zaWRlIHJ1bnMgPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm5ldmVyPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgaW5zaWRlIGFsd2F5cyBydW5zPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj48dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+YXQgbGVhc3Qgb25jZTwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",XZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4ob25seSBvbmNlKTwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNzYiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSIxNyIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY2hlY2sgdGhlIGNvbmRpdGlvbjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjEzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIxNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoiBydW4gdGhlIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBzdGVwLCBlLmcuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+YmFjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50byDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZG9uZTwvdGV4dD4KPC9zdmc+Cg==",KZ="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtYmVycyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5JbmRleDwvdGV4dD4KICA8dGV4dCB4PSI5MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjA8L3RleHQ+PHJlY3QgeD0iNjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iOTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj4yPC90ZXh0PgogIDx0ZXh0IHg9IjE1MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjE8L3RleHQ+PHJlY3QgeD0iMTIwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjQ8L3RleHQ+CiAgPHRleHQgeD0iMjEwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MjwvdGV4dD48cmVjdCB4PSIxODAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjEwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NjwvdGV4dD4KICA8dGV4dCB4PSIyNzAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4zPC90ZXh0PjxyZWN0IHg9IjI0MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNzAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj44PC90ZXh0PgogIDx0ZXh0IHg9IjMzMCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjQ8L3RleHQ+PHJlY3QgeD0iMzAwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMzMCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjEwPC90ZXh0PgogIDx0ZXh0IHg9IjIwIiB5PSI5MCIgZmlsbD0iIzZlNmU3MyIgZm9udC1zaXplPSIxMiI+VmFsdWU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+PGxpbmUgeDE9IjkwIiB5MT0iMTQwIiB4Mj0iOTAiIHkyPSIxMTIiLz48bGluZSB4MT0iMzMwIiB5MT0iMTQwIiB4Mj0iMzMwIiB5Mj0iMTEyIi8+PC9nPgogIDxnIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjEzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dGV4dCB4PSI5MCIgeT0iMTU2Ij5udW1iZXJzWzBdIGlzIDI8L3RleHQ+PHRleHQgeD0iMzMwIiB5PSIxNTYiPm51bWJlcnNbNF0gaXMgMTA8L3RleHQ+PC9nPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj41IHNsb3RzLCBjb3VudGluZyBzdGFydHMgYXQgMDogdGhlIGxhc3QgaW5kZXggaXMgNC48L3RleHQ+Cjwvc3ZnPgo=",eD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPmNhbGN1bGF0b3IuY3BwPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iNTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMzYTNhM2MiPnNvdXJjZSBjb2RlIGluIEMrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjgwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjEyNiIgeDI9IjgwIiB5Mj0iMTU2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSIyMjAiIHkyPSI5NCIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjEyNiIgeDI9IjIyMCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMzYwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIzNjAiIHkxPSIxMjYiIHgyPSIzNjAiIHkyPSIxNTYiLz4KICA8L2c+CiAgPHJlY3QgeD0iMTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb21waWxlcjwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMTU4IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjYjkxYzFjIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5NCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+V2luZG93czwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5tYWNoaW5lIGNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5Db21waWxlIGFnYWluPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjc4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPmZvciBldmVyeSBzeXN0ZW08L3RleHQ+Cjwvc3ZnPgo=",tD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPlRpbWVzVGFibGUuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5zb3VyY2UgY29kZSwgZm9yIHBlb3BsZTwvdGV4dD4KICA8cmVjdCB4PSIxMTAiIHk9IjEwNCIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXdlaWdodD0iNjAwIj5UaW1lc1RhYmxlLmNsYXNzPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMTQzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5ieXRlY29kZTogQ0EgRkUgQkEgQkUg4oCmPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMjIwIiB5Mj0iMTAyIi8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iODAiIHkyPSIxOTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxNTIiIHgyPSIyMjAiIHkyPSIxOTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxNTIiIHgyPSIzNjAiIHkyPSIxOTYiLz4KICA8L2c+CiAgPHRleHQgeD0iMjMwIiB5PSI4NiI+Y29tcGlsZXIgamF2YWM8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvd3M8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjIzNCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPkxpbnV4PC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPldyaXRlIG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMzE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPnJ1biBhbnl3aGVyZTwvdGV4dD4KPC9zdmc+Cg==",nD=""+new URL("mvc-klick-BIA_bYzu.svg",import.meta.url).href,iD=""+new URL("ss-binaere-suche-D02W1TH_.svg",import.meta.url).href,aD=""+new URL("ss-bubblesort-CmKEoNfO.svg",import.meta.url).href,sD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Mb29raW5nIGZvciB0aGUgOS4gVGhlIGNhcmRzIGFyZSBtaXhlZCB1cC48L3RleHQ+CjxnPjxyZWN0IHg9IjE0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIzNC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij43PC90ZXh0Pjx0ZXh0IHg9IjM0LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjZGMyNjI2Ij7imaU8L3RleHQ+PC9nPgo8dGV4dCB4PSIzNC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMzQuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4xLjwvdGV4dD4KPGc+PHJlY3QgeD0iNjIiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjgyLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjM8L3RleHQ+PHRleHQgeD0iODIuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZoDwvdGV4dD48L2c+Cjx0ZXh0IHg9IjgyLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSI4Mi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjIuPC90ZXh0Pgo8Zz48cmVjdCB4PSIxMTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjEzMC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij4xMDwvdGV4dD48dGV4dCB4PSIxMzAuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpjwvdGV4dD48L2c+Cjx0ZXh0IHg9IjEzMC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTMwLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+My48L3RleHQ+CjxnPjxyZWN0IHg9IjE1OCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTc4LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjU8L3RleHQ+PHRleHQgeD0iMTc4LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaM8L3RleHQ+PC9nPgo8dGV4dCB4PSIxNzguMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjQuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyMDYiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IHg9IjIyNi4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj45PC90ZXh0Pjx0ZXh0IHg9IjIyNi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iMjI2LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iIzE1ODAzZCI+4pyTPC90ZXh0Pgo8dGV4dCB4PSIyMjYuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj41LjwvdGV4dD4KPGc+PHJlY3QgeD0iMjU0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIyNTgiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjMwMiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzA2IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8Zz48cmVjdCB4PSIzNTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjM1NCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPHRleHQgeD0iMTQiIHk9IjE2OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+VHVybiB0aGVtIG92ZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0OjwvdGV4dD48dGV4dCB4PSIxNCIgeT0iMTg4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5BZnRlciA1IGNvbXBhcmlzb25zIHRoZSA5IGlzIGZvdW5kLjwvdGV4dD4KPC9zdmc+Cg==",rD=""+new URL("ss-vergleiche-UczNldcC.svg",import.meta.url).href,oD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPkNhbGwgYnkgdmFsdWU6IGEgY29weTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1iZXI8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZG91YmxlSXQ8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb3B5PC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTUwIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj54IGJlY29tZXMgMTAsIGJ1dCBudW1iZXIgc3RheXMgNS48L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNjgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPkxpa2UgYSBwaG90b2NvcHk6IHdyaXRpbmcgb24gdGhlIGNvcHk8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPmRvZXMgbm90IGNoYW5nZSB0aGUgb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5DYWxsIGJ5IHJlZmVyZW5jZTogdGhlIHNhbWUgYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+cm93PC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5jbGVhcjwvdGV4dD4KPHRleHQgeD0iMjYwIiB5PSIzMDAiPnNlYXRzPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5UaGVyZSBpcyBvbmx5IG9uZSBhcnJheS4gV2hhdCBjbGVhciBjaGFuZ2VzIHRocm91Z2ggc2VhdHMsPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDM0IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj50aGUgbWFpbiBwcm9ncmFtIHNlZXMgdW5kZXIgcm93LjwvdGV4dD4KPC9zdmc+Cg==",lD=""+new URL("zk-zeichen-CgUEhNoK.svg",import.meta.url).href,uD=""+new URL("grace-hopper-DltOT1I5.jpg",import.meta.url).href,mD=""+new URL("hedy-lamarr-MFZMAlPQ.jpg",import.meta.url).href,cD=""+new URL("ike-nassi-D2w47gvX.jpg",import.meta.url).href,dD=""+new URL("katherine-johnson-k17EjVTs.jpg",import.meta.url).href,hD=""+new URL("kino-saal-CYMOok4_.svg",import.meta.url).href,gD=""+new URL("kino-schleifen-DrTQV7dq.svg",import.meta.url).href,pD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlRhc3NlIGF1ZiBkZW4gVGlzY2ggc3RlbGxlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5adWNrZXIgZ2V3w7xuc2NodD88L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjE5NCI+WnVja2VyIGhpbmVpbmdlYmVuPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIyODUiPlRlZSBub2NoIHp1IGhlacOfPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjMyNy41IiB5PSIyODUiPjEgTWludXRlIHdhcnRlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5UZWUgdHJpbmtlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzk1Ij5FbmRlPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5qYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MiIgeT0iMTIyIiBmaWxsPSIjZDcwMDE1Ij5uZWluPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPmphPC90ZXh0PgogICAgPHRleHQgeD0iMTU2IiB5PSIzMjAiIGZpbGw9IiNkNzAwMTUiPm5laW48L3RleHQ+CiAgPC9nPgogIDwhLS0gTGVnZW5kZSAtLT4KICA8bGluZSB4MT0iMTAiIHkxPSI0MTgiIHgyPSIzOTAiIHkyPSI0MTgiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxnIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgPHJlY3QgeD0iNDAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiByeD0iOSIgZmlsbD0iI2QxZjJkOSIvPgogICAgPHJlY3QgeD0iMjIwIiB5PSI0MzAiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxOCIgZmlsbD0iI2U1ZjBmZiIvPgogICAgPHBhdGggZD0iTTU4IDQ1OCBMNzYgNDY5IEw1OCA0ODAgTDQwIDQ2OSBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8cGF0aCBkPSJNMjI2IDQ2MCBMMjU2IDQ2MCBMMjUwIDQ3OCBMMjIwIDQ3OCBaIiBmaWxsPSIjZjJlNmZmIi8+CiAgPC9nPgogIDxnIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiMzYTNhM2MiPgogICAgPHRleHQgeD0iODYiIHk9IjQ0MyI+U3RhcnQgb2RlciBFbmRlPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NDMiPkFud2Vpc3VuZzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPlZlcnp3ZWlndW5nPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVpbi0gb2RlciBBdXNnYWJlPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",fD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V29oaW4gbGFuZGV0IGRhcyBFbGVtZW50PzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij5vYmVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnVudGVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjIyNCIgeT0iNjIiPuKGkiBrb21tdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGF2b3I8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIga29tbXQgPHRzcGFuIGZvbnQtd2VpZ2h0PSI2MDAiPmRhaGludGVyPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZXJzZXR6dDwvdHNwYW4+IGRlbiBQbGF0emhhbHRlcjwvdGV4dD4KPC9zdmc+Cg==",xD=""+new URL("l03-lochkarte-beschriftet-7hmU_7ct.svg",import.meta.url).href,bD=""+new URL("l03-lochkarte-gzfFEatc.svg",import.meta.url).href,vD=""+new URL("l03-zuse-lochstreifen-B87kqGex.svg",import.meta.url).href,yD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMzM2IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByZWlzPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPk08L3RzcGFuPml0PHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPlM8L3RzcGFuPnRldWVyPC90ZXh0Pgo8bGluZSB4MT0iMTgyIiB5MT0iNTQiIHgyPSIxODIiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxsaW5lIHgxPSIyNTQiIHkxPSI1NCIgeDI9IjI1NCIgeTI9IjgyIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiLz4KPHBhdGggZD0iTTIwIDI3MiBINDQwIiBzdHJva2U9IiNlNWQzYjAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNTYgMTcyIEwxNTAgMjI2IiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUwIDIyNiBMMTU2IDI2MiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjE2MSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMzA0IDE3MiBMMzA4IDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTMwOCAyMjYgTDMwNCAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMzA4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIzMDkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNDAgQzEwNCAxNTAgMTA0IDE3NiAxMTAgMTk2IiBmaWxsPSJub25lIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxlbGxpcHNlIGN4PSIxMTAiIGN5PSIyMDAiIHJ4PSI1IiByeT0iOSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMTIwIDE3MiBDMTA4IDE1MiAxMTQgMTI4IDEzNCAxMjIgQzE0OCAxMjAgMTU0IDg0IDE4MiA4NCBDMjEwIDg0IDIwOCAxMjYgMjE4IDEyNCBDMjI4IDEyNiAyMjYgODQgMjU0IDg0IEMyODIgODQgMjg0IDEyMiAyOTQgMTI4IEMzMTYgMTMyIDMyNCAxNTggMzQwIDE1OCBDMzUyIDE1OCAzNTQgMTI0IDM1OCAxMTAgQzM2MiA5OCAzNzYgOTYgMzg4IDk5IEM0MDAgMTAyIDQwNiAxMDggNDA0IDExNiBDNDAyIDEyMyAzOTAgMTI0IDM4MCAxMjIgQzM3MiAxMjIgMzcwIDEyOCAzNzAgMTM2IEMzNzAgMTYyIDM2NCAxODQgMzQyIDE4NiBDMzI2IDE4OCAzMTYgMTgyIDMwNiAxNzggQzI0OCAxODggMTg4IDE4OCAxNDAgMTgyIEMxMzAgMTgwIDEyNCAxNzcgMTIwIDE3MiBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMzQgMTcyIEwxMjggMjI2IiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTI4IDIyNiBMMTM0IDI2MiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxMjgiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjEzOSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMjg0IDE3MiBMMjg4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTI4OCAyMjYgTDI4NCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMjg4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIyODkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTM2NiAxMDMgTDM2MiA5MiBMMzc0IDEwMCBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzODIiIGN5PSIxMDciIHI9IjMuMiIgZmlsbD0iIzFjMWMxZSIvPgo8cGF0aCBkPSJNMzc3IDEwNCBRMzgyIDEwMSAzODcgMTA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTggMTA3IHE0IDEgNSA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTIgMTE5IFEzOTggMTE4IDQwMyAxMTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzdhNTUzMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==",wD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWx0ZXIgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YWx0ZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5XZXJ0PC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0ZW50eXA8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPsOcYmVyIGRlbiBOYW1lbiBrb21tc3QgZHUgYW4gZGVuIFdlcnQuPC90ZXh0Pgo8L3N2Zz4K",zD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cHVua3RlPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cHVua3RlICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCByZWNodHMgYXVzcmVjaG5lbjogMTAgKyA1ID0gMTU8L3RleHQ+CiAgPHBhdGggZD0iTTI1MCA4MiBDMjMwIDMwLCA5MCAzMCwgNjQgODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICA8dGV4dCB4PSIxNjAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIj7ikaEgRXJnZWJuaXMgbGlua3Mgc3BlaWNoZXJuPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxNjQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3Ii8+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnB1bmt0ZSB2b3JoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xMDwvdHNwYW4+ICAg4oaSICAgcHVua3RlIG5hY2hoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",ID="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGlua3M8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+U2FmdDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aGlsZjwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bGVlcjwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cmVjaHRzPC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5XYXNzZXI8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iNzAiIHk9IjI0NyI+MTogaGlsZiA9IGxpbmtzPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNDciPjI6IGxpbmtzID0gcmVjaHRzPC90ZXh0PgogICAgPHRleHQgeD0iMzMwIiB5PSIyNDciPjM6IHJlY2h0cyA9IGhpbGY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",kD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzAwIj4KPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNmZmZmZmYiLz4KPGcgdHJhbnNmb3JtPSJyb3RhdGUoLTMgMjAwIDE1MCkiPgo8cmVjdCB4PSI0NCIgeT0iMjQiIHdpZHRoPSIyOTAiIGhlaWdodD0iMjU2IiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIwLjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1IDYpIi8+CjxyZWN0IHg9IjQ0IiB5PSIyNCIgd2lkdGg9IjI5MCIgaGVpZ2h0PSIyNTYiIGZpbGw9IiNmZmZkZjYiIHN0cm9rZT0iI2M5YzJhZCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iNTgiIHgyPSIzMzQiIHkyPSI1OCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iODAiIHgyPSIzMzQiIHkyPSI4MCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTAyIiB4Mj0iMzM0IiB5Mj0iMTAyIiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxMjQiIHgyPSIzMzQiIHkyPSIxMjQiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjE0NiIgeDI9IjMzNCIgeTI9IjE0NiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTY4IiB4Mj0iMzM0IiB5Mj0iMTY4IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxOTAiIHgyPSIzMzQiIHkyPSIxOTAiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjIxMiIgeDI9IjMzNCIgeTI9IjIxMiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMjM0IiB4Mj0iMzM0IiB5Mj0iMjM0IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIyNTYiIHgyPSIzMzQiIHkyPSIyNTYiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI3OCIgeTE9IjI0IiB4Mj0iNzgiIHkyPSIyODAiIHN0cm9rZT0iI2U4YTBhMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGcgZm9udC1mYW1pbHk9IidTZWdvZSBQcmludCcsICdCcmFkbGV5IEhhbmQnLCAnQ2hhbGtib2FyZCBTRScsICdDb21pYyBTYW5zIE1TJywgY3Vyc2l2ZSIgZmlsbD0iIzFmM2E4YSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Cjx0ZXh0IHg9IjEzMCIgeT0iNzUiIGZvbnQtc2l6ZT0iMTkiIGZvbnQtd2VpZ2h0PSJib2xkIj5hPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9Ijc1IiBmb250LXNpemU9IjE5IiBmb250LXdlaWdodD0iYm9sZCI+YjwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSI3NSIgZm9udC1zaXplPSIxOSIgZm9udC13ZWlnaHQ9ImJvbGQiPmhpbGY8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iOTciIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjE5NSIgeT0iOTciIGZvbnQtc2l6ZT0iMTgiPuKAkzwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSI5NyIgZm9udC1zaXplPSIxOCI+4oCTPC90ZXh0Pgo8dGV4dCB4PSIxMzAiIHk9IjExOSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMTk1IiB5PSIxMTkiIGZvbnQtc2l6ZT0iMTgiPjU8L3RleHQ+Cjx0ZXh0IHg9IjI2MiIgeT0iMTE5IiBmb250LXNpemU9IjE4Ij7igJM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTQxIiBmb250LXNpemU9IjE4Ij4zPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE0MSIgZm9udC1zaXplPSIxOCI+NTwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxNDEiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTYzIiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE2MyIgZm9udC1zaXplPSIxOCI+NTwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxNjMiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTg1IiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE4NSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxODUiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+CjwvZz4KPGcgc3Ryb2tlPSIjMWYzYThhIiBzdHJva2Utd2lkdGg9IjEuNiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KPHBhdGggZD0iTTEwMCA4MyBRMTkwIDgxIDMwMCA4NCIvPgo8cGF0aCBkPSJNMTYyIDU2IFExNjAgMTUwIDE2MyAxOTQiLz4KPHBhdGggZD0iTTIyOCA1NiBRMjMwIDE1MCAyMjcgMTk0Ii8+CjwvZz4KPC9nPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAgMjMyKSByb3RhdGUoLTM4KSI+CjxyZWN0IHg9IjAiIHk9Ii05IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjE4IiBmaWxsPSIjZjVjMDAwIiBzdHJva2U9IiM4YTZkMDAiIHN0cm9rZS13aWR0aD0iMS4yIi8+CjxsaW5lIHgxPSIwIiB5MT0iLTMiIHgyPSIxMjAiIHkyPSItMyIgc3Ryb2tlPSIjZDlhODAwIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjAiIHkxPSIzIiB4Mj0iMTIwIiB5Mj0iMyIgc3Ryb2tlPSIjZDlhODAwIiBzdHJva2Utd2lkdGg9IjEiLz4KPHJlY3QgeD0iMTIwIiB5PSItOSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjE4IiBmaWxsPSIjYjhiOGI4IiBzdHJva2U9IiM3NzciIHN0cm9rZS13aWR0aD0iMS4yIi8+CjxyZWN0IHg9IjEzMiIgeT0iLTkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxOCIgcng9IjUiIGZpbGw9IiNmMDhhOWEiIHN0cm9rZT0iI2EyNGE1OCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHBhdGggZD0iTTAgLTkgTC0yNiAwIEwwIDkgWiIgZmlsbD0iI2U5YzlhMCIgc3Ryb2tlPSIjOGE2ZDRhIiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8cGF0aCBkPSJNLTE3IC0zIEwtMjYgMCBMLTE3IDMgWiIgZmlsbD0iIzMzMyIvPgo8L2c+Cjwvc3ZnPgo=",SD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzAwIj4KPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNmZmZmZmYiLz4KPGcgdHJhbnNmb3JtPSJyb3RhdGUoLTMgMjAwIDE1MCkiPgo8cmVjdCB4PSI0NCIgeT0iMjQiIHdpZHRoPSIyOTAiIGhlaWdodD0iMjU2IiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIwLjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1IDYpIi8+CjxyZWN0IHg9IjQ0IiB5PSIyNCIgd2lkdGg9IjI5MCIgaGVpZ2h0PSIyNTYiIGZpbGw9IiNmZmZkZjYiIHN0cm9rZT0iI2M5YzJhZCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iNTgiIHgyPSIzMzQiIHkyPSI1OCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iODAiIHgyPSIzMzQiIHkyPSI4MCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTAyIiB4Mj0iMzM0IiB5Mj0iMTAyIiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxMjQiIHgyPSIzMzQiIHkyPSIxMjQiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjE0NiIgeDI9IjMzNCIgeTI9IjE0NiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTY4IiB4Mj0iMzM0IiB5Mj0iMTY4IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxOTAiIHgyPSIzMzQiIHkyPSIxOTAiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjIxMiIgeDI9IjMzNCIgeTI9IjIxMiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMjM0IiB4Mj0iMzM0IiB5Mj0iMjM0IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIyNTYiIHgyPSIzMzQiIHkyPSIyNTYiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI3OCIgeTE9IjI0IiB4Mj0iNzgiIHkyPSIyODAiIHN0cm9rZT0iI2U4YTBhMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGcgZm9udC1mYW1pbHk9IidTZWdvZSBQcmludCcsICdCcmFkbGV5IEhhbmQnLCAnQ2hhbGtib2FyZCBTRScsICdDb21pYyBTYW5zIE1TJywgY3Vyc2l2ZSIgZmlsbD0iIzFmM2E4YSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Cjx0ZXh0IHg9IjEzMCIgeT0iNzUiIGZvbnQtc2l6ZT0iMTkiIGZvbnQtd2VpZ2h0PSJib2xkIj5hPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9Ijc1IiBmb250LXNpemU9IjE5IiBmb250LXdlaWdodD0iYm9sZCI+YjwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSI3NSIgZm9udC1zaXplPSIxOSIgZm9udC13ZWlnaHQ9ImJvbGQiPnRlbXA8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iOTciIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjE5NSIgeT0iOTciIGZvbnQtc2l6ZT0iMTgiPuKAkzwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSI5NyIgZm9udC1zaXplPSIxOCI+4oCTPC90ZXh0Pgo8dGV4dCB4PSIxMzAiIHk9IjExOSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMTk1IiB5PSIxMTkiIGZvbnQtc2l6ZT0iMTgiPjU8L3RleHQ+Cjx0ZXh0IHg9IjI2MiIgeT0iMTE5IiBmb250LXNpemU9IjE4Ij7igJM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTQxIiBmb250LXNpemU9IjE4Ij4zPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE0MSIgZm9udC1zaXplPSIxOCI+NTwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxNDEiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTYzIiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE2MyIgZm9udC1zaXplPSIxOCI+NTwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxNjMiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTg1IiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjE4NSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxODUiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+CjwvZz4KPGcgc3Ryb2tlPSIjMWYzYThhIiBzdHJva2Utd2lkdGg9IjEuNiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KPHBhdGggZD0iTTEwMCA4MyBRMTkwIDgxIDMwMCA4NCIvPgo8cGF0aCBkPSJNMTYyIDU2IFExNjAgMTUwIDE2MyAxOTQiLz4KPHBhdGggZD0iTTIyOCA1NiBRMjMwIDE1MCAyMjcgMTk0Ii8+CjwvZz4KPC9nPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAgMjMyKSByb3RhdGUoLTM4KSI+CjxyZWN0IHg9IjAiIHk9Ii05IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjE4IiBmaWxsPSIjZjVjMDAwIiBzdHJva2U9IiM4YTZkMDAiIHN0cm9rZS13aWR0aD0iMS4yIi8+CjxsaW5lIHgxPSIwIiB5MT0iLTMiIHgyPSIxMjAiIHkyPSItMyIgc3Ryb2tlPSIjZDlhODAwIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjAiIHkxPSIzIiB4Mj0iMTIwIiB5Mj0iMyIgc3Ryb2tlPSIjZDlhODAwIiBzdHJva2Utd2lkdGg9IjEiLz4KPHJlY3QgeD0iMTIwIiB5PSItOSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjE4IiBmaWxsPSIjYjhiOGI4IiBzdHJva2U9IiM3NzciIHN0cm9rZS13aWR0aD0iMS4yIi8+CjxyZWN0IHg9IjEzMiIgeT0iLTkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxOCIgcng9IjUiIGZpbGw9IiNmMDhhOWEiIHN0cm9rZT0iI2EyNGE1OCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHBhdGggZD0iTTAgLTkgTC0yNiAwIEwwIDkgWiIgZmlsbD0iI2U5YzlhMCIgc3Ryb2tlPSIjOGE2ZDRhIiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8cGF0aCBkPSJNLTE3IC0zIEwtMjYgMCBMLTE3IDMgWiIgZmlsbD0iIzMzMyIvPgo8L2c+Cjwvc3ZnPgo=",TD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzAwIj4KPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNmZmZmZmYiLz4KPGcgdHJhbnNmb3JtPSJyb3RhdGUoLTMgMjAwIDE1MCkiPgo8cmVjdCB4PSI0NCIgeT0iMjQiIHdpZHRoPSIyOTAiIGhlaWdodD0iMjU2IiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIwLjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1IDYpIi8+CjxyZWN0IHg9IjQ0IiB5PSIyNCIgd2lkdGg9IjI5MCIgaGVpZ2h0PSIyNTYiIGZpbGw9IiNmZmZkZjYiIHN0cm9rZT0iI2M5YzJhZCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iNTgiIHgyPSIzMzQiIHkyPSI1OCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iODAiIHgyPSIzMzQiIHkyPSI4MCIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTAyIiB4Mj0iMzM0IiB5Mj0iMTAyIiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxMjQiIHgyPSIzMzQiIHkyPSIxMjQiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjE0NiIgeDI9IjMzNCIgeTI9IjE0NiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMTY4IiB4Mj0iMzM0IiB5Mj0iMTY4IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIxOTAiIHgyPSIzMzQiIHkyPSIxOTAiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI0NCIgeTE9IjIxMiIgeDI9IjMzNCIgeTI9IjIxMiIgc3Ryb2tlPSIjYmNkNGVlIiBzdHJva2Utd2lkdGg9IjEiLz4KPGxpbmUgeDE9IjQ0IiB5MT0iMjM0IiB4Mj0iMzM0IiB5Mj0iMjM0IiBzdHJva2U9IiNiY2Q0ZWUiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iNDQiIHkxPSIyNTYiIHgyPSIzMzQiIHkyPSIyNTYiIHN0cm9rZT0iI2JjZDRlZSIgc3Ryb2tlLXdpZHRoPSIxIi8+CjxsaW5lIHgxPSI3OCIgeTE9IjI0IiB4Mj0iNzgiIHkyPSIyODAiIHN0cm9rZT0iI2U4YTBhMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGcgZm9udC1mYW1pbHk9IidTZWdvZSBQcmludCcsICdCcmFkbGV5IEhhbmQnLCAnQ2hhbGtib2FyZCBTRScsICdDb21pYyBTYW5zIE1TJywgY3Vyc2l2ZSIgZmlsbD0iIzFmM2E4YSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Cjx0ZXh0IHg9IjEzMCIgeT0iNzUiIGZvbnQtc2l6ZT0iMTkiIGZvbnQtd2VpZ2h0PSJib2xkIj5hPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9Ijc1IiBmb250LXNpemU9IjE5IiBmb250LXdlaWdodD0iYm9sZCI+YjwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSI3NSIgZm9udC1zaXplPSIxOSIgZm9udC13ZWlnaHQ9ImJvbGQiPmF1eDwvdGV4dD4KPHRleHQgeD0iMTMwIiB5PSI5NyIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMTk1IiB5PSI5NyIgZm9udC1zaXplPSIxOCI+4oCTPC90ZXh0Pgo8dGV4dCB4PSIyNjIiIHk9Ijk3IiBmb250LXNpemU9IjE4Ij7igJM8L3RleHQ+Cjx0ZXh0IHg9IjEzMCIgeT0iMTE5IiBmb250LXNpemU9IjE4Ij4zPC90ZXh0Pgo8dGV4dCB4PSIxOTUiIHk9IjExOSIgZm9udC1zaXplPSIxOCI+NTwvdGV4dD4KPHRleHQgeD0iMjYyIiB5PSIxMTkiIGZvbnQtc2l6ZT0iMTgiPuKAkzwvdGV4dD4KPHRleHQgeD0iMTMwIiB5PSIxNDEiIGZvbnQtc2l6ZT0iMTgiPjM8L3RleHQ+Cjx0ZXh0IHg9IjE5NSIgeT0iMTQxIiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIyNjIiIHk9IjE0MSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMTMwIiB5PSIxNjMiIGZvbnQtc2l6ZT0iMTgiPjU8L3RleHQ+Cjx0ZXh0IHg9IjE5NSIgeT0iMTYzIiBmb250LXNpemU9IjE4Ij41PC90ZXh0Pgo8dGV4dCB4PSIyNjIiIHk9IjE2MyIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPHRleHQgeD0iMTMwIiB5PSIxODUiIGZvbnQtc2l6ZT0iMTgiPjU8L3RleHQ+Cjx0ZXh0IHg9IjE5NSIgeT0iMTg1IiBmb250LXNpemU9IjE4Ij4zPC90ZXh0Pgo8dGV4dCB4PSIyNjIiIHk9IjE4NSIgZm9udC1zaXplPSIxOCI+MzwvdGV4dD4KPC9nPgo8ZyBzdHJva2U9IiMxZjNhOGEiIHN0cm9rZS13aWR0aD0iMS42IiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgo8cGF0aCBkPSJNMTAwIDgzIFExOTAgODEgMzAwIDg0Ii8+CjxwYXRoIGQ9Ik0xNjIgNTYgUTE2MCAxNTAgMTYzIDE5NCIvPgo8cGF0aCBkPSJNMjI4IDU2IFEyMzAgMTUwIDIyNyAxOTQiLz4KPC9nPgo8L2c+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwMCAyMzIpIHJvdGF0ZSgtMzgpIj4KPHJlY3QgeD0iMCIgeT0iLTkiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTgiIGZpbGw9IiNmNWMwMDAiIHN0cm9rZT0iIzhhNmQwMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPGxpbmUgeDE9IjAiIHkxPSItMyIgeDI9IjEyMCIgeTI9Ii0zIiBzdHJva2U9IiNkOWE4MDAiIHN0cm9rZS13aWR0aD0iMSIvPgo8bGluZSB4MT0iMCIgeTE9IjMiIHgyPSIxMjAiIHkyPSIzIiBzdHJva2U9IiNkOWE4MDAiIHN0cm9rZS13aWR0aD0iMSIvPgo8cmVjdCB4PSIxMjAiIHk9Ii05IiB3aWR0aD0iMTIiIGhlaWdodD0iMTgiIGZpbGw9IiNiOGI4YjgiIHN0cm9rZT0iIzc3NyIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHJlY3QgeD0iMTMyIiB5PSItOSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE4IiByeD0iNSIgZmlsbD0iI2YwOGE5YSIgc3Ryb2tlPSIjYTI0YTU4IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8cGF0aCBkPSJNMCAtOSBMLTI2IDAgTDAgOSBaIiBmaWxsPSIjZTljOWEwIiBzdHJva2U9IiM4YTZkNGEiIHN0cm9rZS13aWR0aD0iMS4yIi8+CjxwYXRoIGQ9Ik0tMTcgLTMgTC0yNiAwIEwtMTcgMyBaIiBmaWxsPSIjMzMzIi8+CjwvZz4KPC9zdmc+Cg==",jD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+Z8O8bHRpZzwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPnVuZ8O8bHRpZzwvdGV4dD48dGV4dCB4PSIzNjAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj51bmfDvGx0aWc8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGUgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGUgJmx0Oz0gNjwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RlICZsdDsgMSB8fCBub3RlICZndDsgNjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",_D="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMTkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+CiAgPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIxOTAiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB4PSIyMCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmE8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmI8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIyMjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmEgJmFtcDsmYW1wOyBiPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNzAwIj5hIHx8IGI8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPiFhPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0NiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSI2MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjE0MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyNjAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIzNDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjM4MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjEwMCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzMDAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjExMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjE4MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTQyIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMjIwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8bGluZSB4MT0iMTgwIiB5MT0iMTQiIHgyPSIxODAiIHkyPSIxNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIzIi8+Cjwvc3ZnPgo=",CD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5BYmxhdWYgZGVyIFdoaWxlLVNjaGxlaWZlPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNDQiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSIyMCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaAgQmVkaW5ndW5nIHByw7xmZW48L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgSW5oYWx0IGF1c2bDvGhyZW48L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53aWVkZXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bmFjaCBvYmVuPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+d2VpdGVyIHVudGVyIGRlciBTY2hsZWlmZTwvdGV4dD4KPC9zdmc+Cg==",AD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+a29wZmdlc3RldWVydCAoV2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmZ1w59nZXN0ZXVlcnQgKERvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBCZWRpbmd1bmc8L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBJbmhhbHQ8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluaGFsdDwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgQmVkaW5ndW5nPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5Jc3QgZGllIEJlZGluZ3VuZyBnbGVpY2ggZmFsc2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5sw6R1ZnQgZGVyIEluaGFsdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+bmllPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5EZXIgSW5oYWx0IGzDpHVmdCBpbW1lcjwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm1pbmRlc3RlbnMgZWlubWFsPC90c3Bhbj4uPC90ZXh0Pgo8L3N2Zz4K",PD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4obnVyIGVpbm1hbCk8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIEJlZGluZ3VuZyBwcsO8ZmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGiIEluaGFsdCBhdXNmw7xocmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGjIFNjaHJpdHQsIHouIEIuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+enVyw7xjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj56dSDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZmVydGlnPC90ZXh0Pgo8L3N2Zz4K",OD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gemFobGVuID0gezIsIDQsIDYsIDgsIDEwfTwvdGV4dD4KICA8dGV4dCB4PSIyMCIgeT0iNTQiIGZpbGw9IiM2ZTZlNzMiIGZvbnQtc2l6ZT0iMTIiPkluZGV4PC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5XZXJ0PC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPjxsaW5lIHgxPSI5MCIgeTE9IjE0MCIgeDI9IjkwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjMzMCIgeTE9IjE0MCIgeDI9IjMzMCIgeTI9IjExMiIvPjwvZz4KICA8ZyBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRleHQgeD0iOTAiIHk9IjE1NiI+emFobGVuWzBdIGlzdCAyPC90ZXh0Pjx0ZXh0IHg9IjMzMCIgeT0iMTU2Ij56YWhsZW5bNF0gaXN0IDEwPC90ZXh0PjwvZz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+NSBGw6RjaGVyLCBnZXrDpGhsdCB3aXJkIGFiIDA6IGRlciBsZXR6dGUgSW5kZXggaXN0IDQuPC90ZXh0Pgo8L3N2Zz4K",MD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPnJlY2huZXIuY3BwPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iNTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMzYTNhM2MiPlF1ZWxsY29kZSBpbiBDKys8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSI4MCIgeTI9Ijk0Ii8+CiAgICA8bGluZSB4MT0iODAiIHkxPSIxMjYiIHgyPSI4MCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMjIwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSIxMjYiIHgyPSIyMjAiIHkyPSIxNTYiLz4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjM2MCIgeTI9Ijk0Ii8+CiAgICA8bGluZSB4MT0iMzYwIiB5MT0iMTI2IiB4Mj0iMzYwIiB5Mj0iMTU2Ii8+CiAgPC9nPgogIDxyZWN0IHg9IjE4IiB5PSI5NiIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzMCIgcng9IjE1IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgPHRleHQgeD0iODAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Q29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjE4MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+TWFzY2hpbmVuY29kZTwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMTk0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5XaW5kb3dzPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iOTYiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzAiIHJ4PSIxNSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5Db21waWxlcjwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPk1hc2NoaW5lbmNvZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Q29tcGlsZXI8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMTgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5NYXNjaGluZW5jb2RlPC90ZXh0PgogIDxyZWN0IHg9IjI5OCIgeT0iMTk0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+TGludXg8L3RleHQ+CiAgPHRleHQgeD0iMjIwIiB5PSIyNTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc3R5bGU9Iml0YWxpYyI+RsO8ciBqZWRlcyBTeXN0ZW08L3RleHQ+CiAgPHRleHQgeD0iMjIwIiB5PSIyNzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc3R5bGU9Iml0YWxpYyI+bmV1IMO8YmVyc2V0emVuPC90ZXh0Pgo8L3N2Zz4K",ZD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPkVpbm1hbGVpbnMuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5RdWVsbGNvZGUsIGbDvHIgTWVuc2NoZW48L3RleHQ+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMDQiIHdpZHRoPSIyMjAiIGhlaWdodD0iNDgiIHJ4PSI2IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTI0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC13ZWlnaHQ9IjYwMCI+RWlubWFsZWlucy5jbGFzczwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjE0MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzNhM2EzYyI+Qnl0ZWNvZGU6IENBIEZFIEJBIEJFIOKApjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjIyMCIgeTI9IjEwMiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjE1MiIgeDI9IjgwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMjIwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMzYwIiB5Mj0iMTk2Ii8+CiAgPC9nPgogIDx0ZXh0IHg9IjIzMCIgeT0iODYiPkNvbXBpbGVyIGphdmFjPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIxOCIgeT0iMjM0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSI4MCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5XaW5kb3dzPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iMTk4IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE1OCIgeT0iMjM0IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjM2IiByeD0iNiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjI1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+bWFjT1M8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5FaW5tYWwgc2NocmVpYmVuLDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjMxOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj7DvGJlcmFsbCBhdXNmw7xocmVuPC90ZXh0Pgo8L3N2Zz4K",DD=""+new URL("margaret-hamilton-pYPKs1sU.jpg",import.meta.url).href,BD=""+new URL("mvc-klick-KmFKqxH-.svg",import.meta.url).href,LD=""+new URL("aufgabe-mehrwertsteuer-KUkerRBd.svg",import.meta.url).href,WD=""+new URL("kino-saal-BOvcmdzb.svg",import.meta.url).href,ED=""+new URL("kino-schleifen-Ci9yPnbo.svg",import.meta.url).href,ND="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5JbsOtY2lvPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSI3NiI+UMO0ciB1bWEgY2jDoXZlbmEgbmEgbWVzYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5RdWVyIGHDp8O6Y2FyPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5KdW50YXIgYcOnw7pjYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+Q2jDoSBtdWl0byBxdWVudGU/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+RXNwZXJhciAxIG1pbnV0bzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5CZWJlciBvIGNow6E8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjM5NSI+RmltPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIyNDIiIHk9IjEyMiIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MCIgeT0iMjc0IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjMyMCIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5JbsOtY2lvIG91IGZpbTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI2NiIgeT0iNDQzIj5JbnN0cnXDp8OjbzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPkRlY2lzw6NvPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVudHJhZGEgb3Ugc2HDrWRhPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",JD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+T25kZSBmaWNhIG8gZWxlbWVudG8/PC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RiZWFmZSIvPgogIDxyZWN0IHg9IjIwIiB5PSI3NSIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc1IiB4Mj0iMjEwIiB5Mj0iNzUiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLWRhc2hhcnJheT0iNCAzIi8+CiAgPHJlY3QgeD0iMjAiIHk9IjQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjcwIiBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxZDRlZDgiPm1ldGFkZSBkZSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPm1ldGFkZSBkZSBiYWl4bzwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YW50ZXM8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGVwb2lzPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+c3Vic3RpdHVpLW88L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg==",FD=""+new URL("l03-lochkarte-beschriftet-D1QjqGFo.svg",import.meta.url).href,RD=""+new URL("l03-lochkarte-BSn6oWaS.svg",import.meta.url).href,GD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgMjkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSI+CjxyZWN0IHdpZHRoPSI0NjAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+Cjx0ZXh0IHg9IjUwIiB5PSI0NCIgZm9udC1zaXplPSI0MCIgZmlsbD0iIzZlNmU3MyIgdGV4dExlbmd0aD0iMjY0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiPnByZWNvPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPkM8L3RzcGFuPm9tPHRzcGFuIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPkk8L3RzcGFuPnZhPC90ZXh0Pgo8bGluZSB4MT0iMTgyIiB5MT0iNTQiIHgyPSIxODIiIHkyPSI4MiIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWRhc2hhcnJheT0iNSA0Ii8+CjxsaW5lIHgxPSIyNTQiIHkxPSI1NCIgeDI9IjI1NCIgeTI9IjgyIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiLz4KPHBhdGggZD0iTTIwIDI3MiBINDQwIiBzdHJva2U9IiNlNWQzYjAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNTYgMTcyIEwxNTAgMjI2IiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUwIDIyNiBMMTU2IDI2MiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjE2MSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMzA0IDE3MiBMMzA4IDIyNiIgc3Ryb2tlPSIjYjg4YTUyIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTMwOCAyMjYgTDMwNCAyNjIiIHN0cm9rZT0iI2I4OGE1MiIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMzA4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIzMDkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTEyMCAxNDAgQzEwNCAxNTAgMTA0IDE3NiAxMTAgMTk2IiBmaWxsPSJub25lIiBzdHJva2U9IiNiODhhNTIiIHN0cm9rZS13aWR0aD0iNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxlbGxpcHNlIGN4PSIxMTAiIGN5PSIyMDAiIHJ4PSI1IiByeT0iOSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMTIwIDE3MiBDMTA4IDE1MiAxMTQgMTI4IDEzNCAxMjIgQzE0OCAxMjAgMTU0IDg0IDE4MiA4NCBDMjEwIDg0IDIwOCAxMjYgMjE4IDEyNCBDMjI4IDEyNiAyMjYgODQgMjU0IDg0IEMyODIgODQgMjg0IDEyMiAyOTQgMTI4IEMzMTYgMTMyIDMyNCAxNTggMzQwIDE1OCBDMzUyIDE1OCAzNTQgMTI0IDM1OCAxMTAgQzM2MiA5OCAzNzYgOTYgMzg4IDk5IEM0MDAgMTAyIDQwNiAxMDggNDA0IDExNiBDNDAyIDEyMyAzOTAgMTI0IDM4MCAxMjIgQzM3MiAxMjIgMzcwIDEyOCAzNzAgMTM2IEMzNzAgMTYyIDM2NCAxODQgMzQyIDE4NiBDMzI2IDE4OCAzMTYgMTgyIDMwNiAxNzggQzI0OCAxODggMTg4IDE4OCAxNDAgMTgyIEMxMzAgMTgwIDEyNCAxNzcgMTIwIDE3MiBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMzQgMTcyIEwxMjggMjI2IiBzdHJva2U9IiNkMmE1NmEiIHN0cm9rZS13aWR0aD0iMTMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTI4IDIyNiBMMTM0IDI2MiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIxMjgiIGN5PSIyMjYiIHI9IjYiIGZpbGw9IiM3YTU1MzAiIG9wYWNpdHk9IjAuNTUiLz4KPGVsbGlwc2UgY3g9IjEzOSIgY3k9IjI2NyIgcng9IjExIiByeT0iNSIgZmlsbD0iIzdhNTUzMCIvPgo8cGF0aCBkPSJNMjg0IDE3MiBMMjg4IDIyNiIgc3Ryb2tlPSIjZDJhNTZhIiBzdHJva2Utd2lkdGg9IjEzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTI4OCAyMjYgTDI4NCAyNjIiIHN0cm9rZT0iI2QyYTU2YSIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPGNpcmNsZSBjeD0iMjg4IiBjeT0iMjI2IiByPSI2IiBmaWxsPSIjN2E1NTMwIiBvcGFjaXR5PSIwLjU1Ii8+CjxlbGxpcHNlIGN4PSIyODkiIGN5PSIyNjciIHJ4PSIxMSIgcnk9IjUiIGZpbGw9IiM3YTU1MzAiLz4KPHBhdGggZD0iTTM2NiAxMDMgTDM2MiA5MiBMMzc0IDEwMCBaIiBmaWxsPSIjZDJhNTZhIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzODIiIGN5PSIxMDciIHI9IjMuMiIgZmlsbD0iIzFjMWMxZSIvPgo8cGF0aCBkPSJNMzc3IDEwNCBRMzgyIDEwMSAzODcgMTA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTggMTA3IHE0IDEgNSA0IiBmaWxsPSJub25lIiBzdHJva2U9IiM3YTU1MzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOTIgMTE5IFEzOTggMTE4IDQwMyAxMTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzdhNTUzMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==",HD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgaWRhZGUgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aWRhZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5WYWxvcjwvdGV4dD4KICA8dGV4dCB4PSIzMTYiIHk9IjExOSI+Tm9tZTwvdGV4dD4KICA8dGV4dCB4PSI4IiB5PSIxNTYiPlRpcG8gZGUgZGFkb3M8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPlBlbG8gbm9tZSBjaGVnYXMgYW8gdmFsb3IuPC90ZXh0Pgo8L3N2Zz4K",VD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9udG9zPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCBjYWxjdWxhciBhIGRpcmVpdGE6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIGd1YXJkYXIgbyByZXN1bHRhZG8gw6AgZXNxdWVyZGE8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zIGFudGVzOiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPiAgIOKGkiAgIHBvbnRvcyBkZXBvaXM6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",QD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZXNxdWVyZGE8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+c3VtbzwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YXV4PC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52YXppbzwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZGlyZWl0YTwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+w6FndWE8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iMjAwIiB5PSIyNTAiPjE6IGF1eCA9IGVzcXVlcmRhPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNjgiPjI6IGVzcXVlcmRhID0gZGlyZWl0YTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjg2Ij4zOiBkaXJlaXRhID0gYXV4PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",qD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzAwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iMTAwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyNCIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc0IiB4Mj0iMzgwIiB5Mj0iNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPGxpbmUgeDE9IjUwIiB5MT0iNjgiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MDwvdGV4dD4KICA8bGluZSB4MT0iMTAwIiB5MT0iNjgiIHgyPSIxMDAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4xPC90ZXh0PgogIDxsaW5lIHgxPSIxNTAiIHkxPSI2OCIgeDI9IjE1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjI8L3RleHQ+CiAgPGxpbmUgeDE9IjIwMCIgeTE9IjY4IiB4Mj0iMjAwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MzwvdGV4dD4KICA8bGluZSB4MT0iMjUwIiB5MT0iNjgiIHgyPSIyNTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj40PC90ZXh0PgogIDxsaW5lIHgxPSIzMDAiIHkxPSI2OCIgeDI9IjMwMCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMwMCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjU8L3RleHQ+CiAgPGxpbmUgeDE9IjM1MCIgeTE9IjY4IiB4Mj0iMzUwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NjwvdGV4dD4KICA8Y2lyY2xlIGN4PSIxMDAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMwMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dsOhbGlkYTwvdGV4dD4KICA8dGV4dCB4PSI1MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludsOhbGlkYTwvdGV4dD48dGV4dCB4PSIzNTAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnbDoWxpZGE8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGEgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGEgJmx0Oz0gNTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RhICZsdDsgMSB8fCBub3RhICZndDsgNTwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",UD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Db21vIGZ1bmNpb25hIG8gY2ljbG8gd2hpbGU8L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSI0NCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI0MCIgcng9IjIwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCB2ZXJpZmljYXIgYSBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTI4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE1MyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIGV4ZWN1dGFyIG8gaW50ZXJpb3I8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52b2x0YXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+cGFyYSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+Y29udGludWFyIHBvciBiYWl4byBkbyBjaWNsbzwvdGV4dD4KPC9zdmc+Cg==",YD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHLDqS10ZXN0ZSAod2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnDDs3MtdGVzdGUgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjM1IiB5PSIxMjQiIHdpZHRoPSIxMzAiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgaW50ZXJpb3I8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGludGVyaW9yPC90ZXh0PgogIDxyZWN0IHg9IjIzNSIgeT0iMTI0IiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjM2IiByeD0iMTgiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBjb25kacOnw6NvPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5TZSBhIGNvbmRpw6fDo28gZm9yIGxvZ28gZmFsc2EsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5vIGludGVyaW9yIDx0c3BhbiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj5udW5jYTwvdHNwYW4+IMOpIGV4ZWN1dGFkby48L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPk8gaW50ZXJpb3Igw6kgc2VtcHJlIGV4ZWN1dGFkbzwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPnBlbG8gbWVub3MgdW1hIHZlejwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",$D="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluw61jaW8gPHRzcGFuIGZpbGw9IiM2ZTZlNzMiPihzw7MgdW1hIHZleik8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIHZlcmlmaWNhciBhIGNvbmRpw6fDo288L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMzgiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaIgZXhlY3V0YXIgbyBpbnRlcmlvcjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBwYXNzbywgcC4gZXguIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+dm9sdGFyPC90ZXh0PgogIDx0ZXh0IHg9IjQ4IiB5PSIxNzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPmFvIOKRoTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9Ijg0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIzMzYiIHk9Ijk4Ij5maW08L3RleHQ+Cjwvc3ZnPgo=",XD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtZXJvcyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj7DjW5kaWNlPC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5WYWxvcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj48bGluZSB4MT0iOTAiIHkxPSIxNDAiIHgyPSI5MCIgeTI9IjExMiIvPjxsaW5lIHgxPSIzMzAiIHkxPSIxNDAiIHgyPSIzMzAiIHkyPSIxMTIiLz48L2c+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjx0ZXh0IHg9IjkwIiB5PSIxNTYiPm51bWVyb3NbMF0gw6kgMjwvdGV4dD48dGV4dCB4PSIzMzAiIHk9IjE1NiI+bnVtZXJvc1s0XSDDqSAxMDwvdGV4dD48L2c+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPjUgcG9zacOnw7VlcywgY29udGEtc2UgYSBwYXJ0aXIgZGUgMDogbyDDumx0aW1vIMOtbmRpY2Ugw6kgNC48L3RleHQ+Cjwvc3ZnPgo=",KD="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMjkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMjkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPmNhbGN1bGFkb3JhLmNwcDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5jw7NkaWdvLWZvbnRlIGVtIEMrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjgwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjEyNiIgeDI9IjgwIiB5Mj0iMTU2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iNjAiIHgyPSIyMjAiIHkyPSI5NCIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjEyNiIgeDI9IjIyMCIgeTI9IjE1NiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjYwIiB4Mj0iMzYwIiB5Mj0iOTQiLz4KICAgIDxsaW5lIHgxPSIzNjAiIHkxPSIxMjYiIHgyPSIzNjAiIHkyPSIxNTYiLz4KICA8L2c+CiAgPHJlY3QgeD0iMTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSI4MCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb21waWxhZG9yPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIxNTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5NCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+V2luZG93czwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsYWRvcjwvdGV4dD4KICA8cmVjdCB4PSIxNTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9Ijk2IiB3aWR0aD0iMTI0IiBoZWlnaHQ9IjMwIiByeD0iMTUiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIzNjAiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+Y29tcGlsYWRvcjwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE1OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIxODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmPDs2RpZ28gbcOhcXVpbmE8L3RleHQ+CiAgPHJlY3QgeD0iMjk4IiB5PSIxOTQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjM2MCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5MaW51eDwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjI1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zdHlsZT0iaXRhbGljIj5Db21waWxhciBkZSBub3ZvPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjc4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPnBhcmEgY2FkYSBzaXN0ZW1hPC90ZXh0Pgo8L3N2Zz4K",eB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMzMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0NDAiIGhlaWdodD0iMzMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMiIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI0OCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjIwIiB5PSIzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtd2VpZ2h0PSI2MDAiPlRhYnVhZGEuamF2YTwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjM2EzYTNjIj5jw7NkaWdvLWZvbnRlLCBwYXJhIHBlc3NvYXM8L3RleHQ+CiAgPHJlY3QgeD0iMTEwIiB5PSIxMDQiIHdpZHRoPSIyMjAiIGhlaWdodD0iNDgiIHJ4PSI2IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMTI0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC13ZWlnaHQ9IjYwMCI+VGFidWFkYS5jbGFzczwvdGV4dD4KICA8dGV4dCB4PSIyMjAiIHk9IjE0MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzNhM2EzYyI+Ynl0ZWNvZGU6IENBIEZFIEJBIEJFIOKApjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMjAiIHkxPSI2MCIgeDI9IjIyMCIgeTI9IjEwMiIvPgogICAgPGxpbmUgeDE9IjIyMCIgeTE9IjE1MiIgeDI9IjgwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMjIwIiB5Mj0iMTk2Ii8+CiAgICA8bGluZSB4MT0iMjIwIiB5MT0iMTUyIiB4Mj0iMzYwIiB5Mj0iMTk2Ii8+CiAgPC9nPgogIDx0ZXh0IHg9IjIzMCIgeT0iODYiPmNvbXBpbGFkb3IgamF2YWM8L3RleHQ+CiAgPHJlY3QgeD0iMTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iODAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+SlZNPC90ZXh0PgogIDxyZWN0IHg9IjE4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjgwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvd3M8L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIxOTgiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5KVk08L3RleHQ+CiAgPHJlY3QgeD0iMTU4IiB5PSIyMzQiIHdpZHRoPSIxMjQiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIyMCIgeT0iMjU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5tYWNPUzwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjE5OCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPkpWTTwvdGV4dD4KICA8cmVjdCB4PSIyOTgiIHk9IjIzNCIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzYwIiB5PSIyNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiPkxpbnV4PC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMjk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPkVzY3JldmVyIHVtYSB2ZXosPC90ZXh0PgogIDx0ZXh0IHg9IjIyMCIgeT0iMzE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXN0eWxlPSJpdGFsaWMiPmV4ZWN1dGFyIGVtIHF1YWxxdWVyIGxhZG88L3RleHQ+Cjwvc3ZnPgo=",tB=""+new URL("mvc-klick-DKonBpbs.svg",import.meta.url).href,nB=""+new URL("schiffe-versenken-iEBDHIxD.svg",import.meta.url).href,iB=""+new URL("ss-binaere-suche-DVVS2SNc.svg",import.meta.url).href,aB=""+new URL("ss-bubblesort-AFDcFDah.svg",import.meta.url).href,sB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Qcm9jdXJhLXNlIG8gOS4gQXMgY2FydGFzIGVzdMOjbyBiYXJhbGhhZGFzLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5WaXJhciBkYSBlc3F1ZXJkYSBwYXJhIGEgZGlyZWl0YTo8L3RleHQ+PHRleHQgeD0iMTQiIHk9IjE4OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+QXDDs3MgNSBjb21wYXJhw6fDtWVzLCBvIDkgw6kgZW5jb250cmFkby48L3RleHQ+Cjwvc3ZnPgo=",rB=""+new URL("ss-vergleiche-DWgkIvLr.svg",import.meta.url).href,oB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPlBhc3NhZ2VtIHBvciB2YWxvcjogdW1hIGPDs3BpYTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1lcm88L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZHVwbGljYXI8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggcGFzc2EgYSAxMCwgbWFzIG51bWVybyBmaWNhIDUuPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTY4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5Db21vIHVtYSBmb3RvY8OzcGlhOiBlc2NyZXZlciBuYSBjw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPm7Do28gYWx0ZXJhIG8gb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5QYXNzYWdlbSBwb3IgcmVmZXLDqm5jaWE6IG8gbWVzbW8gYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+ZmlsYTwvdGV4dD4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjMWQ0ZWQ4Ii8+CjxyZWN0IHg9IjI1MCIgeT0iMjUyIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYyIiByeD0iOCIgZmlsbD0iI2ZmZjdlZCIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyNjAiIHk9IjI3MiIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+bGltcGFyPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9IjMwMCI+bHVnYXJlczwvdGV4dD4KPGNpcmNsZSBjeD0iMzkwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjYjQ1MzA5Ii8+CjxwYXRoIGQ9Ik0xNTAgMzAwIEwxNTAgMzQwIEwxNDAgMzUyIiBmaWxsPSJub25lIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI2IpIi8+CjxwYXRoIGQ9Ik0zOTAgMzAwIEwzOTAgMzQwIEwzMjIgMzU0IiBmaWxsPSJub25lIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI28pIi8+CjxyZWN0IHg9IjkwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjE1MCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyMTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMjcwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9IjEyMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTgwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIyNDAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjMwMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQxNiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+U8OzIGjDoSB1bSBhcnJheS4gTyBxdWUgbGltcGFyIGFsdGVyYSBhdHJhdsOpcyBkZSBsdWdhcmVzLDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+byBwcm9ncmFtYSBwcmluY2lwYWwgdsOqIGVtIGZpbGEuPC90ZXh0Pgo8L3N2Zz4K",lB=""+new URL("zk-zeichen-8efNmpGx.svg",import.meta.url).href,uB=""+new URL("schiffe-versenken-CXt1SF0S.svg",import.meta.url).href,mB=""+new URL("ss-binaere-suche-CPsLGldq.svg",import.meta.url).href,cB=""+new URL("ss-bubblesort-Dic2ZfaT.svg",import.meta.url).href,dB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5HZXN1Y2h0OiBkaWUgOS4gRGllIEthcnRlbiBzaW5kIGdlbWlzY2h0LjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5Wb24gbGlua3MgbmFjaCByZWNodHMgdW1kcmVoZW46PC90ZXh0Pjx0ZXh0IHg9IjE0IiB5PSIxODgiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiM2ZTZlNzMiPk5hY2ggNSBWZXJnbGVpY2hlbiBpc3QgZGllIDkgZ2VmdW5kZW4uPC90ZXh0Pgo8L3N2Zz4K",hB=""+new URL("ss-vergleiche-DRqzU2TZ.svg",import.meta.url).href,gB="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPldlcnTDvGJlcmdhYmU6IGVpbmUgS29waWU8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNlZmY2ZmYiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjAiIHk9IjU4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWQ0ZWQ4Ij5IYXVwdHByb2dyYW1tPC90ZXh0Pgo8dGV4dCB4PSIyMCIgeT0iOTgiPnphaGw8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+dmVyZG9wcGxlPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9Ijk4Ij54PC90ZXh0Pgo8cmVjdCB4PSIyODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMzIwIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRzcGFuIGZpbGw9IiM2ZTZlNzMiIHRleHQtZGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIj41PC90c3Bhbj4gPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj48L3RleHQ+CjxsaW5lIHgxPSIxMjgiIHkxPSI5MyIgeDI9IjI0OCIgeTI9IjkzIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiIG1hcmtlci1lbmQ9InVybCgjaykiLz4KPHRleHQgeD0iMjEwIiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+S29waWU8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggd2lyZCAxMCwgYWJlciB6YWhsIGJsZWlidCA1LjwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE2OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+V2llIGJlaSBlaW5lciBGb3Rva29waWU6IFdlciBhdWYgZGVyIEtvcGllIHNjaHJlaWJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE4NiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+w6RuZGVydCBkYXMgT3JpZ2luYWwgbmljaHQuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5SZWZlcmVuesO8YmVyZ2FiZTogZGFzc2VsYmUgQXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPkhhdXB0cHJvZ3JhbW08L3RleHQ+Cjx0ZXh0IHg9IjIwIiB5PSIzMDAiPnJlaWhlPC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5sZWVyZW48L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iMzAwIj5wbGFldHplPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5FcyBnaWJ0IG51ciBlaW4gQXJyYXkuIFdhcyBsZWVyZW4gw7xiZXIgcGxhZXR6ZSDDpG5kZXJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+c2llaHQgZGFzIEhhdXB0cHJvZ3JhbW0gdW50ZXIgcmVpaGUuPC90ZXh0Pgo8L3N2Zz4K",pB=""+new URL("zk-zeichen-vYvc3iJg.svg",import.meta.url).href;function fB(i){const e=[];for(const t of i.replace(/\r\n/g,` `).split(` -`)){const n=/^###\s+(.+)$/.exec(t),a=e.at(-1);if(n){const s=n[1].trim();e.push({term:s,forms:[s],text:""})}else a&&/^(auch|also):/i.test(t)?a.forms.push(...t.replace(/^(auch|also):/i,"").split(",").map(s=>s.trim()).filter(Boolean)):a&&t.trim()!==""&&(a.text=(a.text+" "+t.trim()).trim())}return e.filter(t=>t.text!=="")}const gZ=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function Hu(i){const e=i.flatMap(t=>t.forms).sort((t,n)=>n.length-t.length);if(e.length!==0)return new RegExp(`(?t.forms.includes(e))}class Eo extends Error{}function pZ(i){return i==="zuhoerer"||i==="vertrag"||i==="layout"||i==="bombe"||i==="frage"||i==="reihenfolge"}function fZ(i,e,t){const n=h=>{throw new Eo(`${t}: ${h}`)};let a="",s="",r="",o=[],l,u;const m=[];let c,d=!1;for(const h of e){const g=h.trim();if(c&&d&&(/^ {4}|^\t/.test(h)||g==="")){c.code+=(c.code?` +`)){const n=/^###\s+(.+)$/.exec(t),a=e.at(-1);if(n){const s=n[1].trim();e.push({term:s,forms:[s],text:""})}else a&&/^(auch|also):/i.test(t)?a.forms.push(...t.replace(/^(auch|also):/i,"").split(",").map(s=>s.trim()).filter(Boolean)):a&&t.trim()!==""&&(a.text=(a.text+" "+t.trim()).trim())}return e.filter(t=>t.text!=="")}const xB=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function Hu(i){const e=i.flatMap(t=>t.forms).sort((t,n)=>n.length-t.length);if(e.length!==0)return new RegExp(`(?t.forms.includes(e))}class Eo extends Error{}function bB(i){return i==="zuhoerer"||i==="vertrag"||i==="layout"||i==="bombe"||i==="frage"||i==="reihenfolge"}function vB(i,e,t){const n=h=>{throw new Eo(`${t}: ${h}`)};let a="",s="",r="",o=[],l,u;const m=[];let c,d=!1;for(const h of e){const g=h.trim();if(c&&d&&(/^ {4}|^\t/.test(h)||g==="")){c.code+=(c.code?` `:"")+h.replace(/^( {4}|\t)/,"");continue}if(d=!1,!g)continue;const f=/^(titel|intro|antworten|frage|runde|klicks|richtig|zeit|fehler|besser|daten):\s*(.*)$/.exec(g);if(f){const[,v,w]=f;v==="runde"?(c={code:"",question:r,options:[],explanation:"",clicks:[]},m.push(c),d=!0):c?v==="frage"?c.question=w:v==="fehler"?c.wrongLine=Number(w):v==="besser"?c.fix=w:v==="klicks"?c.clicks=w.split(",").map(z=>z.trim()).filter(Boolean):v==="richtig"?c.rightText=w:n(`„${v}:“ gehört vor die erste Runde.`):v==="titel"?a=w:v==="intro"?s=w:v==="antworten"?o=w.split("|").map(z=>z.trim()):v==="frage"?r=w:v==="zeit"?l=Number(w):v==="daten"?u=w==="csv"?w:n("„daten:“ kennt nur „csv“."):n(`„${v}:“ gehört in eine Runde.`);continue}c||n(`Unbekannte Zeile vor der ersten Runde: „${g}“`);const x=c,b=/^-\s+(\[x\]\s+)?(.+)$/.exec(g);b?x.options.push({text:b[2].trim().replaceAll("\\n",` `),right:!!b[1]}):g.startsWith(">")?x.explanation+=(x.explanation?" ":"")+g.slice(1).trim():n(`Unbekannte Zeile im Spiel: „${g}“`)}return a||n("Das Spiel braucht eine Zeile „titel:“."),m.length||n("Das Spiel braucht mindestens eine „runde:“."),m.forEach((h,g)=>{if(h.code=h.code.replace(/\n+$/,""),i==="bombe"){const f=h.code.split(` -`),x=h.wrongLine;(!x||!Number.isInteger(x)||x<1||x>f.length||!f[x-1].trim())&&n(`Runde ${g+1}: „fehler:“ muss eine Zeile des Codes sein.`),h.fix||n(`Runde ${g+1}: „besser:“ fehlt.`),h.options.length&&n(`Runde ${g+1}: Bei „bombe“ gibt es keine Antworten, man tippt auf die Zeile.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(i==="reihenfolge"){h.options.length<3&&n(`Runde ${g+1}: „reihenfolge“ braucht mindestens drei Schritte.`),h.options.some(f=>f.right)&&n(`Runde ${g+1}: Bei „reihenfolge“ gibt es kein [x], die Schritte stehen der Reihe nach da.`),new Set(h.options.map(f=>f.text)).size!==h.options.length&&n(`Runde ${g+1}: zwei Schritte sind gleich.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(h.options.length||(o.length||n(`Runde ${g+1}: keine Antworten.`),(!h.rightText||!o.includes(h.rightText))&&n(`Runde ${g+1}: „richtig:“ muss eine der Antworten sein.`),h.options=o.map(f=>({text:f,right:f===h.rightText}))),h.options.filter(f=>f.right).length!==1&&n(`Runde ${g+1}: genau eine Antwort muss richtig sein.`),h.question||n(`Runde ${g+1}: keine Frage.`),i==="layout"&&h.options.forEach(f=>eg(f.text,`Runde ${g+1}`,n)),i==="zuhoerer")try{const f=tg(h.code);for(const x of h.clicks)f.buttons.some(b=>b.caption===x)||n(`Runde ${g+1}: Knopf „${x}“ gibt es nicht.`);xZ(f,h.clicks)}catch(f){if(f instanceof Eo)throw f;n(`Runde ${g+1}: ${f.message}`)}delete h.rightText}),i==="bombe"&&!(l&&l>0)&&n("„bombe“ braucht „zeit:“ mit den Sekunden je Runde."),{kind:i,title:a,intro:s,...i==="bombe"?{seconds:l,...u?{data:u}:{}}:{},rounds:m}}function eg(i,e="",t=n=>{throw new Eo(n)}){const n=/^(grid|flow|border):\s*(.+)$/.exec(i);if(!n)return t(`${e}: Antwort „${i}“ ist kein Fensterbild (grid:, flow: oder border:).`);if(n[1]==="border"){const s={};for(const r of n[2].split(/\s+/)){const o=/^([NSWEC])=(.+)$/.exec(r);o||t(`${e}: „${r}“ im BorderLayout-Bild verstehe ich nicht (z. B. N=A).`),s[o[1]]=o[2]}return{kind:"border",areas:s}}const a=n[2].split("/").map(s=>s.trim().split(/\s+/).filter(Boolean));return{kind:n[1],rows:a}}const Ga='"((?:[^"\\\\]|\\\\.)*)"';function tg(i){const e=i.split(` -`),t={title:"",buttons:[],labels:[],ints:{},listeners:[]},n=new Map,a=(r,o,l)=>{if(o.startsWith("{")){let m=r+1;const c=[];for(;m=e.length)throw new Error(`Dem Zuhörer fehlt „${l}“.`);return{from:r,to:m,statements:No(c.join(" "))}}const u=l==="});"?o.replace(/\)\s*;\s*$/,""):o.replace(/;\s*$/,"");return{from:r,to:r,statements:No(u)}},s=r=>{if(!t.buttons.some(o=>o.name===r))throw new Error(`Knopf ${r} ist nicht angelegt.`);return r};for(let r=0;r\s*(.*)$/.exec(o)){const u=a(r,l[2],"};");n.set(l[1],u),r=u.to}else if(l=/^(\w+)\.addActionListener\(\s*(\w+)\s*\)\s*;$/.exec(o)){const u=n.get(l[2]);if(!u)throw new Error(`Zuhörer ${l[2]} ist nicht angelegt.`);t.listeners.push({button:s(l[1]),...u})}else if(l=/^(\w+)\.addActionListener\(\s*\w+\s*->\s*(.*)$/.exec(o)){const u=a(r,l[2],"});");t.listeners.push({button:s(l[1]),...u}),r=u.to}}return t}function No(i){const e=[];let t=0;const n=()=>{for(;t{let u=0,m=!1;const c=t+1;for(;t{let o=0,l=!1;const u=t;for(;t{if(n(),i[t]==="{")return No(a("{","}"));if(/^if\s*\(/.test(i.slice(t))){t=i.indexOf("(",t);const l=a("(",")").trim(),u=r();n();let m=[];return/^else\b/.test(i.slice(t))&&(t+=4,m=r()),[{condition:l,then:u,otherwise:m}]}const o=s();return o?[o]:[]};for(n();ta.caption===t)??i.buttons.find(a=>e.texts[a.name]===t);if(!n)throw new Error(`Knopf „${t}“ gibt es nicht.`);return ag(i,e,n.name)}function ag(i,e,t){const n=i.listeners.find(r=>r.button===t),a=[],s={source:t,command:e.texts[t]};for(const r of(n==null?void 0:n.statements)??[])sg(r,e,a,s);return{button:t,listener:n,texts:{...e.texts},console:a}}function xZ(i,e){const t=ng(i);return e.map(n=>ig(i,t,n))}function sg(i,e,t,n){if(typeof i!="string"){for(const s of bZ(i.condition,e,n)?i.then:i.otherwise)sg(s,e,t,n);return}let a;if(a=/^(\w+)\.setText\((.*)\)$/.exec(i)){if(!(a[1]in e.texts))throw new Error(`${a[1]} ist keine Beschriftung und kein Knopf.`);e.texts[a[1]]=String($n(a[2],e,n))}else if(a=/^System\.out\.println\((.*)\)$/.exec(i))t.push(String($n(a[1],e,n)));else if(a=/^(\w+)\s*(\+\+|--)$/.exec(i))e.ints[qu(a[1],e)]+=a[2]==="++"?1:-1;else if(a=/^(\w+)\s*([+-]?=)\s*(.+)$/.exec(i)){const s=qu(a[1],e),r=Number($n(a[3],e,n));e.ints[s]=a[2]==="="?r:a[2]==="+="?e.ints[s]+r:e.ints[s]-r}else throw new Error(`Diese Anweisung kann das Spiel nicht nachspielen: „${i}“`)}function bZ(i,e,t){let n;if(n=/^e\.getSource\(\)\s*(==|!=)\s*(\w+)$/.exec(i)){if(!(n[2]in e.texts))throw new Error(`${n[2]} ist kein Knopf.`);return t.source===n[2]==(n[1]==="==")}if(n=/^(!?)(.+)\.equals\((.+)\)$/.exec(i))return String($n(n[2],e,t))===String($n(n[3],e,t))!=(n[1]==="!");if(n=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)){const a=Number($n(n[1],e,t)),s=Number($n(n[3],e,t));return{"==":a===s,"!=":a!==s,"<=":a<=s,">=":a>=s,"<":a":a>s}[n[2]]}throw new Error(`Diese Bedingung kann das Spiel nicht nachspielen: „${i}“`)}function qu(i,e){if(!(i in e.ints))throw new Error(`Variable ${i} ist nicht angelegt.`);return i}function $n(i,e,t){const n=i.match(new RegExp(`${Ga}|\\d+|e\\.getActionCommand\\(\\)|\\w+(?:\\.getText\\(\\))?|[-+*/()]`,"g"))??[];let a=0;const s=()=>{const l=n[a++];if(l===void 0)throw new Error(`Unvollständiger Ausdruck „${i}“`);if(l==="("){const u=o();return a++,u}if(l.startsWith('"'))return JSON.parse(l);if(/^\d+$/.test(l))return Number(l);if(l==="e.getActionCommand()"){if(!t)throw new Error("e.getActionCommand() gibt es nur im Zuhörer.");return t.command}if(l.endsWith(".getText()"))return e.texts[l.slice(0,-10)]??"";if(l in e.ints)return e.ints[l];throw new Error(`Unbekannt: „${l}“`)},r=()=>{let l=s();for(;n[a]==="*"||n[a]==="/";){const u=n[a++],m=Number(s());l=u==="*"?Number(l)*m:Math.trunc(Number(l)/m)}return l},o=()=>{let l=r();for(;n[a]==="+"||n[a]==="-";){const u=n[a++],m=r();u==="+"?l=typeof l=="string"||typeof m=="string"?`${l}${m}`:l+m:l=Number(l)-Number(m)}return l};return o()}class vZ extends Error{}const vs="___";function yZ(i){const e=Array.from({length:i.rows},()=>Array(i.cols).fill(""));for(const t of i.words)[...t.word].forEach((n,a)=>e[t.row+(t.across?0:a)][t.col+(t.across?a:0)]=n);return e}function wZ(i,e){const t=j=>{throw new vZ(`${e}: ${j}`)},n=(j,D)=>{const O=/^(\d+)\s+(\d+)$/.exec(j.trim());return!O||Number(O[1])<1||Number(O[2])<1?t(`${D}: „${j}“ ist kein Feld (Zeile Spalte, ab 1).`):{row:Number(O[1])-1,col:Number(O[2])-1}};let a="",s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o="",l="",u="",m="";const c=[],d=[];let h=[],g,f="start";for(const j of i){const D=j.trim();if(g&&(/^( {4}|\t)/.test(j)||D==="")){const P=j.replace(/^( {4}|\t)/,"");if(g==="station"){const C=c[c.length-1];C.code+=(C.code?` +`),x=h.wrongLine;(!x||!Number.isInteger(x)||x<1||x>f.length||!f[x-1].trim())&&n(`Runde ${g+1}: „fehler:“ muss eine Zeile des Codes sein.`),h.fix||n(`Runde ${g+1}: „besser:“ fehlt.`),h.options.length&&n(`Runde ${g+1}: Bei „bombe“ gibt es keine Antworten, man tippt auf die Zeile.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(i==="reihenfolge"){h.options.length<3&&n(`Runde ${g+1}: „reihenfolge“ braucht mindestens drei Schritte.`),h.options.some(f=>f.right)&&n(`Runde ${g+1}: Bei „reihenfolge“ gibt es kein [x], die Schritte stehen der Reihe nach da.`),new Set(h.options.map(f=>f.text)).size!==h.options.length&&n(`Runde ${g+1}: zwei Schritte sind gleich.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(h.options.length||(o.length||n(`Runde ${g+1}: keine Antworten.`),(!h.rightText||!o.includes(h.rightText))&&n(`Runde ${g+1}: „richtig:“ muss eine der Antworten sein.`),h.options=o.map(f=>({text:f,right:f===h.rightText}))),h.options.filter(f=>f.right).length!==1&&n(`Runde ${g+1}: genau eine Antwort muss richtig sein.`),h.question||n(`Runde ${g+1}: keine Frage.`),i==="layout"&&h.options.forEach(f=>eg(f.text,`Runde ${g+1}`,n)),i==="zuhoerer")try{const f=tg(h.code);for(const x of h.clicks)f.buttons.some(b=>b.caption===x)||n(`Runde ${g+1}: Knopf „${x}“ gibt es nicht.`);yB(f,h.clicks)}catch(f){if(f instanceof Eo)throw f;n(`Runde ${g+1}: ${f.message}`)}delete h.rightText}),i==="bombe"&&!(l&&l>0)&&n("„bombe“ braucht „zeit:“ mit den Sekunden je Runde."),{kind:i,title:a,intro:s,...i==="bombe"?{seconds:l,...u?{data:u}:{}}:{},rounds:m}}function eg(i,e="",t=n=>{throw new Eo(n)}){const n=/^(grid|flow|border):\s*(.+)$/.exec(i);if(!n)return t(`${e}: Antwort „${i}“ ist kein Fensterbild (grid:, flow: oder border:).`);if(n[1]==="border"){const s={};for(const r of n[2].split(/\s+/)){const o=/^([NSWEC])=(.+)$/.exec(r);o||t(`${e}: „${r}“ im BorderLayout-Bild verstehe ich nicht (z. B. N=A).`),s[o[1]]=o[2]}return{kind:"border",areas:s}}const a=n[2].split("/").map(s=>s.trim().split(/\s+/).filter(Boolean));return{kind:n[1],rows:a}}const Ga='"((?:[^"\\\\]|\\\\.)*)"';function tg(i){const e=i.split(` +`),t={title:"",buttons:[],labels:[],ints:{},listeners:[]},n=new Map,a=(r,o,l)=>{if(o.startsWith("{")){let m=r+1;const c=[];for(;m=e.length)throw new Error(`Dem Zuhörer fehlt „${l}“.`);return{from:r,to:m,statements:No(c.join(" "))}}const u=l==="});"?o.replace(/\)\s*;\s*$/,""):o.replace(/;\s*$/,"");return{from:r,to:r,statements:No(u)}},s=r=>{if(!t.buttons.some(o=>o.name===r))throw new Error(`Knopf ${r} ist nicht angelegt.`);return r};for(let r=0;r\s*(.*)$/.exec(o)){const u=a(r,l[2],"};");n.set(l[1],u),r=u.to}else if(l=/^(\w+)\.addActionListener\(\s*(\w+)\s*\)\s*;$/.exec(o)){const u=n.get(l[2]);if(!u)throw new Error(`Zuhörer ${l[2]} ist nicht angelegt.`);t.listeners.push({button:s(l[1]),...u})}else if(l=/^(\w+)\.addActionListener\(\s*\w+\s*->\s*(.*)$/.exec(o)){const u=a(r,l[2],"});");t.listeners.push({button:s(l[1]),...u}),r=u.to}}return t}function No(i){const e=[];let t=0;const n=()=>{for(;t{let u=0,m=!1;const c=t+1;for(;t{let o=0,l=!1;const u=t;for(;t{if(n(),i[t]==="{")return No(a("{","}"));if(/^if\s*\(/.test(i.slice(t))){t=i.indexOf("(",t);const l=a("(",")").trim(),u=r();n();let m=[];return/^else\b/.test(i.slice(t))&&(t+=4,m=r()),[{condition:l,then:u,otherwise:m}]}const o=s();return o?[o]:[]};for(n();ta.caption===t)??i.buttons.find(a=>e.texts[a.name]===t);if(!n)throw new Error(`Knopf „${t}“ gibt es nicht.`);return ag(i,e,n.name)}function ag(i,e,t){const n=i.listeners.find(r=>r.button===t),a=[],s={source:t,command:e.texts[t]};for(const r of(n==null?void 0:n.statements)??[])sg(r,e,a,s);return{button:t,listener:n,texts:{...e.texts},console:a}}function yB(i,e){const t=ng(i);return e.map(n=>ig(i,t,n))}function sg(i,e,t,n){if(typeof i!="string"){for(const s of wB(i.condition,e,n)?i.then:i.otherwise)sg(s,e,t,n);return}let a;if(a=/^(\w+)\.setText\((.*)\)$/.exec(i)){if(!(a[1]in e.texts))throw new Error(`${a[1]} ist keine Beschriftung und kein Knopf.`);e.texts[a[1]]=String(Yn(a[2],e,n))}else if(a=/^System\.out\.println\((.*)\)$/.exec(i))t.push(String(Yn(a[1],e,n)));else if(a=/^(\w+)\s*(\+\+|--)$/.exec(i))e.ints[Qu(a[1],e)]+=a[2]==="++"?1:-1;else if(a=/^(\w+)\s*([+-]?=)\s*(.+)$/.exec(i)){const s=Qu(a[1],e),r=Number(Yn(a[3],e,n));e.ints[s]=a[2]==="="?r:a[2]==="+="?e.ints[s]+r:e.ints[s]-r}else throw new Error(`Diese Anweisung kann das Spiel nicht nachspielen: „${i}“`)}function wB(i,e,t){let n;if(n=/^e\.getSource\(\)\s*(==|!=)\s*(\w+)$/.exec(i)){if(!(n[2]in e.texts))throw new Error(`${n[2]} ist kein Knopf.`);return t.source===n[2]==(n[1]==="==")}if(n=/^(!?)(.+)\.equals\((.+)\)$/.exec(i))return String(Yn(n[2],e,t))===String(Yn(n[3],e,t))!=(n[1]==="!");if(n=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)){const a=Number(Yn(n[1],e,t)),s=Number(Yn(n[3],e,t));return{"==":a===s,"!=":a!==s,"<=":a<=s,">=":a>=s,"<":a":a>s}[n[2]]}throw new Error(`Diese Bedingung kann das Spiel nicht nachspielen: „${i}“`)}function Qu(i,e){if(!(i in e.ints))throw new Error(`Variable ${i} ist nicht angelegt.`);return i}function Yn(i,e,t){const n=i.match(new RegExp(`${Ga}|\\d+|e\\.getActionCommand\\(\\)|\\w+(?:\\.getText\\(\\))?|[-+*/()]`,"g"))??[];let a=0;const s=()=>{const l=n[a++];if(l===void 0)throw new Error(`Unvollständiger Ausdruck „${i}“`);if(l==="("){const u=o();return a++,u}if(l.startsWith('"'))return JSON.parse(l);if(/^\d+$/.test(l))return Number(l);if(l==="e.getActionCommand()"){if(!t)throw new Error("e.getActionCommand() gibt es nur im Zuhörer.");return t.command}if(l.endsWith(".getText()"))return e.texts[l.slice(0,-10)]??"";if(l in e.ints)return e.ints[l];throw new Error(`Unbekannt: „${l}“`)},r=()=>{let l=s();for(;n[a]==="*"||n[a]==="/";){const u=n[a++],m=Number(s());l=u==="*"?Number(l)*m:Math.trunc(Number(l)/m)}return l},o=()=>{let l=r();for(;n[a]==="+"||n[a]==="-";){const u=n[a++],m=r();u==="+"?l=typeof l=="string"||typeof m=="string"?`${l}${m}`:l+m:l=Number(l)-Number(m)}return l};return o()}class zB extends Error{}const vs="___";function IB(i){const e=Array.from({length:i.rows},()=>Array(i.cols).fill(""));for(const t of i.words)[...t.word].forEach((n,a)=>e[t.row+(t.across?0:a)][t.col+(t.across?a:0)]=n);return e}function kB(i,e){const t=_=>{throw new zB(`${e}: ${_}`)},n=(_,M)=>{const O=/^(\d+)\s+(\d+)$/.exec(_.trim());return!O||Number(O[1])<1||Number(O[2])<1?t(`${M}: „${_}“ ist kein Feld (Zeile Spalte, ab 1).`):{row:Number(O[1])-1,col:Number(O[2])-1}};let a="",s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o="",l="",u="",m="";const c=[],d=[];let h=[],g,f="start";for(const _ of i){const M=_.trim();if(g&&(/^( {4}|\t)/.test(_)||M==="")){const P=_.replace(/^( {4}|\t)/,"");if(g==="station"){const C=c[c.length-1];C.code+=(C.code?` `:"")+P}else u+=(u?` -`:"")+P;continue}if(g=void 0,!D)continue;const O=/^(titel|intro|alphabet|station|frage|zahl|feld|tipp|kreuzwort|lösung|loesung|tor|ende):\s*(.*)$/.exec(D);if(O){const[,P,C]=O;if(P==="station")c.push({name:C,code:"",question:"",hint:"",explanation:""}),f="station",g="station";else if(P==="kreuzwort")o=C,f="crossword";else if(P==="tor")l=C,f="gate",g="gate";else if(P==="titel")a=C;else if(P==="intro")s=C;else if(P==="alphabet")r=C;else if(P==="ende")m=C;else if(P==="lösung"||P==="loesung")f!=="crossword"&&t("„lösung:“ gehört zum Kreuzworträtsel."),h=C.split(",").map(Z=>n(Z,"lösung"));else{f!=="station"&&t(`„${P}:“ gehört in eine Station.`);const Z=c[c.length-1];P==="frage"?Z.question=C:P==="tipp"?Z.hint=C:P==="zahl"?Z.answer=/^-?\d+$/.test(C)?Number(C):t(`Station „${Z.name}“: „zahl:“ muss eine ganze Zahl sein.`):Object.assign(Z,n(C,`Station „${Z.name}“`))}continue}if(f==="crossword"){const P=/^-\s+([→↓])\s+(\d+)\s+(\d+)\s+([A-ZÄÖÜ]+):\s*(.+)$/u.exec(D);P||t(`Kreuzworträtsel: „${D}“ verstehe ich nicht (z. B. „- → 1 3 STRING: Hinweis“).`),d.push({across:P[1]==="→",row:Number(P[2])-1,col:Number(P[3])-1,word:P[4],clue:P[5]});continue}if(f==="station"&&D.startsWith(">")){const P=c[c.length-1];P.explanation+=(P.explanation?" ":"")+D.slice(1).trim();continue}t(`Unbekannte Zeile im Spiel: „${D}“`)}a||t("Das Spiel braucht eine Zeile „titel:“."),c.length||t("Das Spiel braucht mindestens eine „station:“."),d.length||t("Das Spiel braucht ein „kreuzwort:“ mit Wörtern."),h.length||t("Das Kreuzworträtsel braucht eine Zeile „lösung:“."),u.includes(vs)||t(`Der Code bei „tor:“ braucht ${vs} für das Eingabefeld.`),new Set(r).size!==r.length&&t("Im Alphabet kommt ein Zeichen doppelt vor.");const x=Math.max(...d.map(j=>j.row+(j.across?1:j.word.length))),b=Math.max(...d.map(j=>j.col+(j.across?j.word.length:1))),v=Array.from({length:x},()=>Array(b).fill(""));for(const j of d)[...j.word].forEach((D,O)=>{const P=j.row+(j.across?0:O),C=j.col+(j.across?O:0);v[P][C]&&v[P][C]!==D&&t(`Kreuzworträtsel: ${j.word} passt in Zeile ${P+1}, Spalte ${C+1} nicht (dort steht ${v[P][C]}).`),v[P][C]=D});const w=[...new Set(d.map(j=>j.row*b+j.col))].sort((j,D)=>j-D),z=d.map(j=>({...j,number:w.indexOf(j.row*b+j.col)+1})),I=(j,D)=>{var O;return((O=v[j])==null?void 0:O[D])??""},k=h.map(({row:j,col:D})=>I(j,D)||t(`lösung: In Zeile ${j+1}, Spalte ${D+1} ist kein Feld.`)).join(""),S=c.map(j=>{j.code||t(`Station „${j.name}“: Code fehlt.`),j.question||t(`Station „${j.name}“: „frage:“ fehlt.`),j.answer===void 0&&t(`Station „${j.name}“: „zahl:“ fehlt.`),j.row===void 0&&t(`Station „${j.name}“: „feld:“ fehlt.`);const D=r.charAt(j.answer);D||t(`Station „${j.name}“: alphabet.charAt(${j.answer}) gibt es nicht.`);const O=I(j.row,j.col);return O!==D&&t(`Station „${j.name}“: alphabet.charAt(${j.answer}) ist ${D}, im Feld ${j.row+1} ${j.col+1} steht aber „${O}“.`),j.code=j.code.replace(/\n+$/,""),j});return{title:a,intro:s,alphabet:r,stations:S,crosswordText:o,rows:x,cols:b,words:z,solution:h,keyword:k,gateText:l,gateCode:u.replace(/\n+$/,""),end:m}}const zZ=/\[\[(.+?)\]\]/g;function IZ(i,e){const t={title:"",task:"",blocks:[]},n=[];let a=!1;for(const s of i){if(/^\s*```/.test(s)){a||n.push([]),a=!a;continue}if(a){n[n.length-1].push(s.replace(/\s+$/,""));continue}const r=s.trim();if(!r)continue;const o=/^([a-zäöü]+):\s*(.*)$/i.exec(r);if(!o)throw new Error(`${e}: Unbekannte Zeile im Lückentext: „${r}“.`);const l=o[2].trim();switch(o[1].toLowerCase()){case"titel":t.title=l;break;case"auftrag":t.task=l;break;case"erklärung":case"erklaerung":t.explanation=l;break;default:throw new Error(`${e}: Unbekannter Schlüssel „${o[1]}“ im Lückentext.`)}}if(a)throw new Error(`${e}: Der Codeblock im Lückentext wird nicht mit \`\`\` geschlossen.`);if(!t.title)throw new Error(`${e}: Ein Lückentext braucht einen Titel.`);if(!n.some(s=>s.some(r=>r.trim())))throw new Error(`${e}: Lückentext „${t.title}“ braucht einen Codeblock.`);if(t.blocks=n.map(s=>{const r=Math.min(...s.filter(o=>o.trim()).map(o=>/^ */.exec(o)[0].length));return s.map(o=>kZ(o.slice(r),e,t.title))}),!SZ(t).length)throw new Error(`${e}: Lückentext „${t.title}“ braucht mindestens eine Lücke [[…]].`);return t}function kZ(i,e,t){const n=[];let a=0;for(const s of i.matchAll(zZ)){s.index>a&&n.push(i.slice(a,s.index));const r=s[1].split(/\s+\|\s+/).map(o=>o.trim()).filter(Boolean);if(!r.length)throw new Error(`${e}: Leere Lücke im Lückentext „${t}“.`);n.push({answers:r}),a=s.index+s[0].length}if(atypeof s=="string"&&(s.includes("[[")||s.includes("]]"))))throw new Error(`${e}: Unvollständige Lücke im Lückentext „${t}“: „${i}“.`);return n}function SZ(i){return i.blocks.flat().flatMap(e=>e.flatMap(t=>typeof t=="string"?[]:[t.answers]))}function TZ(i,e){const t=n=>n.replace(/\s+/g,"");return t(e)!==""&&i.some(n=>t(n)===t(e))}const Qu={start:"oval",ende:"oval",anweisung:"rechteck",eingabe:"parallelogramm",ausgabe:"parallelogramm",frage:"raute"};function _Z(i,e){const t={title:"",task:"",nodes:[]},n=[];for(const a of i){const s=a.trim();if(!s)continue;const r=/^([a-zäöü]+):\s*(.*)$/i.exec(s);if(!r)throw new Error(`${e}: Unbekannte Zeile im PAP: „${s}“.`);const o=r[1].toLowerCase(),l=r[2].trim();if(o==="titel")t.title=l;else if(o==="auftrag")t.task=l;else if(o==="erklärung"||o==="erklaerung")t.explanation=l;else if(o==="legende")t.legend=/^(ja|yes|true|sim)$/i.test(l);else if(o in Qu){const[u,m]=l.split(/\s+\|\s+/);if(!u)throw new Error(`${e}: Leeres Element im PAP: „${s}“.`);const c={shape:Qu[o],text:u.trim()};if(t.nodes.push(c),o!=="frage"){if(m)throw new Error(`${e}: Nur eine Frage hat einen zweiten Ausgang: „${s}“.`);continue}const d=/^(ja|nein)\s*(->|:)\s*(.+)$/i.exec(m??"");if(!d)throw new Error(`${e}: Eine Frage braucht „| nein -> Text“ oder „| nein: Text“: „${s}“.`);c.sideExit=d[1].toLowerCase(),d[2]===":"?(c.side=t.nodes.length,t.nodes.push({shape:"rechteck",text:d[3].trim(),isSide:!0})):n.push({node:t.nodes.length-1,target:d[3].trim(),line:s})}else throw new Error(`${e}: Unbekannter Schlüssel „${r[1]}“ im PAP.`)}for(const a of n){const s=t.nodes.findIndex((r,o)=>o{if(n.isSide)return;const s=DZ(n.shape);(i.nodes.some(r=>r.backTo===a)||n.side!==void 0)&&(t+=12),e[a]={x:CZ,y:t+s/2,w:n.shape==="raute"?170:n.shape==="oval"?110:AZ,h:s},n.side!==void 0&&(e[n.side]={x:PZ,y:t+s/2,w:OZ,h:40}),t+=s+Uu}),{boxes:e,height:t-Uu+10}}function rg(i,e){if((r=>r.length*6.6<=e)(i))return[i];const n=i.split(" ");let a=[i],s=1/0;for(let r=1;ru.length));ln(B,"lösung"));else{f!=="station"&&t(`„${P}:“ gehört in eine Station.`);const B=c[c.length-1];P==="frage"?B.question=C:P==="tipp"?B.hint=C:P==="zahl"?B.answer=/^-?\d+$/.test(C)?Number(C):t(`Station „${B.name}“: „zahl:“ muss eine ganze Zahl sein.`):Object.assign(B,n(C,`Station „${B.name}“`))}continue}if(f==="crossword"){const P=/^-\s+([→↓])\s+(\d+)\s+(\d+)\s+([A-ZÄÖÜ]+):\s*(.+)$/u.exec(M);P||t(`Kreuzworträtsel: „${M}“ verstehe ich nicht (z. B. „- → 1 3 STRING: Hinweis“).`),d.push({across:P[1]==="→",row:Number(P[2])-1,col:Number(P[3])-1,word:P[4],clue:P[5]});continue}if(f==="station"&&M.startsWith(">")){const P=c[c.length-1];P.explanation+=(P.explanation?" ":"")+M.slice(1).trim();continue}t(`Unbekannte Zeile im Spiel: „${M}“`)}a||t("Das Spiel braucht eine Zeile „titel:“."),c.length||t("Das Spiel braucht mindestens eine „station:“."),d.length||t("Das Spiel braucht ein „kreuzwort:“ mit Wörtern."),h.length||t("Das Kreuzworträtsel braucht eine Zeile „lösung:“."),u.includes(vs)||t(`Der Code bei „tor:“ braucht ${vs} für das Eingabefeld.`),new Set(r).size!==r.length&&t("Im Alphabet kommt ein Zeichen doppelt vor.");const x=Math.max(...d.map(_=>_.row+(_.across?1:_.word.length))),b=Math.max(...d.map(_=>_.col+(_.across?_.word.length:1))),v=Array.from({length:x},()=>Array(b).fill(""));for(const _ of d)[..._.word].forEach((M,O)=>{const P=_.row+(_.across?0:O),C=_.col+(_.across?O:0);v[P][C]&&v[P][C]!==M&&t(`Kreuzworträtsel: ${_.word} passt in Zeile ${P+1}, Spalte ${C+1} nicht (dort steht ${v[P][C]}).`),v[P][C]=M});const w=[...new Set(d.map(_=>_.row*b+_.col))].sort((_,M)=>_-M),z=d.map(_=>({..._,number:w.indexOf(_.row*b+_.col)+1})),I=(_,M)=>{var O;return((O=v[_])==null?void 0:O[M])??""},k=h.map(({row:_,col:M})=>I(_,M)||t(`lösung: In Zeile ${_+1}, Spalte ${M+1} ist kein Feld.`)).join(""),S=c.map(_=>{_.code||t(`Station „${_.name}“: Code fehlt.`),_.question||t(`Station „${_.name}“: „frage:“ fehlt.`),_.answer===void 0&&t(`Station „${_.name}“: „zahl:“ fehlt.`),_.row===void 0&&t(`Station „${_.name}“: „feld:“ fehlt.`);const M=r.charAt(_.answer);M||t(`Station „${_.name}“: alphabet.charAt(${_.answer}) gibt es nicht.`);const O=I(_.row,_.col);return O!==M&&t(`Station „${_.name}“: alphabet.charAt(${_.answer}) ist ${M}, im Feld ${_.row+1} ${_.col+1} steht aber „${O}“.`),_.code=_.code.replace(/\n+$/,""),_});return{title:a,intro:s,alphabet:r,stations:S,crosswordText:o,rows:x,cols:b,words:z,solution:h,keyword:k,gateText:l,gateCode:u.replace(/\n+$/,""),end:m}}const SB=/\[\[(.+?)\]\]/g;function TB(i,e){const t={title:"",task:"",blocks:[]},n=[];let a=!1;for(const s of i){if(/^\s*```/.test(s)){a||n.push([]),a=!a;continue}if(a){n[n.length-1].push(s.replace(/\s+$/,""));continue}const r=s.trim();if(!r)continue;const o=/^([a-zäöü]+):\s*(.*)$/i.exec(r);if(!o)throw new Error(`${e}: Unbekannte Zeile im Lückentext: „${r}“.`);const l=o[2].trim();switch(o[1].toLowerCase()){case"titel":t.title=l;break;case"auftrag":t.task=l;break;case"erklärung":case"erklaerung":t.explanation=l;break;default:throw new Error(`${e}: Unbekannter Schlüssel „${o[1]}“ im Lückentext.`)}}if(a)throw new Error(`${e}: Der Codeblock im Lückentext wird nicht mit \`\`\` geschlossen.`);if(!t.title)throw new Error(`${e}: Ein Lückentext braucht einen Titel.`);if(!n.some(s=>s.some(r=>r.trim())))throw new Error(`${e}: Lückentext „${t.title}“ braucht einen Codeblock.`);if(t.blocks=n.map(s=>{const r=Math.min(...s.filter(o=>o.trim()).map(o=>/^ */.exec(o)[0].length));return s.map(o=>jB(o.slice(r),e,t.title))}),!_B(t).length)throw new Error(`${e}: Lückentext „${t.title}“ braucht mindestens eine Lücke [[…]].`);return t}function jB(i,e,t){const n=[];let a=0;for(const s of i.matchAll(SB)){s.index>a&&n.push(i.slice(a,s.index));const r=s[1].split(/\s+\|\s+/).map(o=>o.trim()).filter(Boolean);if(!r.length)throw new Error(`${e}: Leere Lücke im Lückentext „${t}“.`);n.push({answers:r}),a=s.index+s[0].length}if(atypeof s=="string"&&(s.includes("[[")||s.includes("]]"))))throw new Error(`${e}: Unvollständige Lücke im Lückentext „${t}“: „${i}“.`);return n}function _B(i){return i.blocks.flat().flatMap(e=>e.flatMap(t=>typeof t=="string"?[]:[t.answers]))}function CB(i,e){const t=n=>n.replace(/\s+/g,"");return t(e)!==""&&i.some(n=>t(n)===t(e))}const qu={start:"oval",ende:"oval",anweisung:"rechteck",eingabe:"parallelogramm",ausgabe:"parallelogramm",frage:"raute"};function AB(i,e){const t={title:"",task:"",nodes:[]},n=[];for(const a of i){const s=a.trim();if(!s)continue;const r=/^([a-zäöü]+):\s*(.*)$/i.exec(s);if(!r)throw new Error(`${e}: Unbekannte Zeile im PAP: „${s}“.`);const o=r[1].toLowerCase(),l=r[2].trim();if(o==="titel")t.title=l;else if(o==="auftrag")t.task=l;else if(o==="erklärung"||o==="erklaerung")t.explanation=l;else if(o==="legende")t.legend=/^(ja|yes|true|sim)$/i.test(l);else if(o in qu){const[u,m]=l.split(/\s+\|\s+/);if(!u)throw new Error(`${e}: Leeres Element im PAP: „${s}“.`);const c={shape:qu[o],text:u.trim()};if(t.nodes.push(c),o!=="frage"){if(m)throw new Error(`${e}: Nur eine Frage hat einen zweiten Ausgang: „${s}“.`);continue}const d=/^(ja|nein)\s*(->|:)\s*(.+)$/i.exec(m??"");if(!d)throw new Error(`${e}: Eine Frage braucht „| nein -> Text“ oder „| nein: Text“: „${s}“.`);c.sideExit=d[1].toLowerCase(),d[2]===":"?(c.side=t.nodes.length,t.nodes.push({shape:"rechteck",text:d[3].trim(),isSide:!0})):n.push({node:t.nodes.length-1,target:d[3].trim(),line:s})}else throw new Error(`${e}: Unbekannter Schlüssel „${r[1]}“ im PAP.`)}for(const a of n){const s=t.nodes.findIndex((r,o)=>o{if(n.isSide)return;const s=BB(n.shape);(i.nodes.some(r=>r.backTo===a)||n.side!==void 0)&&(t+=12),e[a]={x:OB,y:t+s/2,w:n.shape==="raute"?170:n.shape==="oval"?110:MB,h:s},n.side!==void 0&&(e[n.side]={x:ZB,y:t+s/2,w:DB,h:40}),t+=s+Uu}),{boxes:e,height:t-Uu+10}}function rg(i,e){if((r=>r.length*6.6<=e)(i))return[i];const n=i.split(" ");let a=[i],s=1/0;for(let r=1;ru.length));l|→)\s*/);if(t.length!==2)throw new ne(`${e}: Test „${i}“ braucht genau ein „->“.`);const n=(a,s)=>a.trim()===""||a.trim()==="-"?[]:a.split(s).map(r=>r.trim());return{inputs:n(t[0],/\s*,\s*/),expected:n(t[1],/\s*\|\s*/)}}function ZZ(i){const e=/^(.*?)\s*(?:->|→)\s*(.*)$/.exec(i.trim());if(!e)throw new Error(`„messwerte: ${i}“ braucht ein „->“.`);const t={};for(const n of e[1].split(/\s*,\s*/).filter(Boolean)){const a=/^(\w+)\s*=\s*(.+)$/.exec(n);if(!a||!(a[1]in Ct))throw new Error(`Unbekannter Sensor in „${n}“.`);t[a[1]]=a[2].split("/").map(s=>{const r=s.trim();if(r==="true"||r==="false")return r==="true";if(/^-?\d+(\.\d+)?$/.test(r))return Number(r);if(typeof Ct[a[1]].simulated=="string")return r;throw new Error(`Messwert „${r}“ ist keine Zahl und nicht true/false.`)})}return ug({inputs:[],expected:[],sensors:t},e[2])}function ug(i,e){const t=[];e=e.replace(/\bscreen\s+("(?:[^"\\]|\\.)*")/u,(n,a)=>(i.screen=JSON.parse(a),""));for(const n of e.split(/\s*,\s*/).filter(Boolean))n==="ledOn"||n==="ledOff"?i.led=n==="ledOn":n==="tone"||n==="noTone"?i.tone=n==="tone":n==="none"?i.drive=[]:n==="drives"?i.drives=!0:t.push(n);return t.length&&(i.drive=ls(Ih(t.join(", ")))),i}function LZ(i,e,t){const n={id:i,title:"",task:"",tests:[],requires:[],hints:[],subprograms:[]};let a;for(const s of e){const r=/^(titel|auftrag|start|test|datei|fahrt|befehle|welt|messwerte|schleifentiefe|braucht|tipp|lösung|loesung|unterprogramm|code|bereich):\s*(.*)$/i.exec(s.trim());if(r){const[,o,l]=r;switch(a=void 0,o.toLowerCase()){case"titel":n.title=l;break;case"auftrag":n.task=l,a="task";break;case"start":n.start=l;break;case"test":n.tests.push(BZ(l,t));break;case"datei":{const u=/^([\w.-]+)\s*(?:->|→)\s*(.*)$/.exec(l.trim());if(!u||!n.tests.length)throw new ne(`${t}: Übung „${i}“: „datei:“ braucht vorher einen Test und die Form „name.txt -> Zeile | Zeile“.`);const m=n.tests[n.tests.length-1];m.files=[...m.files??[],{name:u[1],lines:u[2].trim()===""?[]:u[2].split(/\s*\|\s*/).map(c=>c.trim())}];break}case"fahrt":try{n.tests.push({inputs:[],expected:[],drive:ls(Ih(l))})}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"welt":{const u=/^([\w-]+)\s*(?:->|→)\s*(.+)$/.exec(l.trim());if(u){try{n.tests.push(ug({inputs:[],expected:[],world:u[1]},u[2]))}catch(m){throw new ne(`${t}: Übung „${i}“: ${m.message}`)}break}for(const m of l.split(/\s*,\s*/).filter(Boolean)){if(!/^[\w-]+$/.test(m))throw new ne(`${t}: Übung „${i}“: Weltname „${m}“ (nur Buchstaben, Ziffern, -).`);n.tests.push({inputs:[],expected:[],world:m})}break}case"befehle":try{n.tests.push({inputs:[],expected:[],actions:M3(l)})}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"messwerte":try{n.tests.push(ZZ(l))}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"schleifentiefe":if(n.loopDepth=Number(l),!Number.isInteger(n.loopDepth)||n.loopDepth<1)throw new ne(`${t}: Übung „${i}“: „schleifentiefe:“ braucht eine Zahl ab 1.`);break;case"braucht":n.requires.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"tipp":n.hints.push(l),a="hint";break;case"lösung":case"loesung":n.solution=l;break;case"unterprogramm":n.subprograms.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"code":if(l.trim().toLowerCase()!=="java")throw new ne(`${t}: Übung „${i}“: „code:“ kennt nur „java“.`);n.code="java";break;case"bereich":{const u=l.trim().toLowerCase();if(u!=="struktogramm"&&u!=="code"&&u!=="beide")throw new ne(`${t}: Übung „${i}“: „bereich:“ kennt nur „struktogramm“, „code“ oder „beide“.`);n.area=u;break}}}else a&&s.trim()!==""?a==="task"?n.task+=` +`).slice(t[0].length)}}function WB(i,e){const t=i.split(/\s*(?:->|→)\s*/);if(t.length!==2)throw new ne(`${e}: Test „${i}“ braucht genau ein „->“.`);const n=(a,s)=>a.trim()===""||a.trim()==="-"?[]:a.split(s).map(r=>r.trim());return{inputs:n(t[0],/\s*,\s*/),expected:n(t[1],/\s*\|\s*/)}}function EB(i){const e=/^(.*?)\s*(?:->|→)\s*(.*)$/.exec(i.trim());if(!e)throw new Error(`„messwerte: ${i}“ braucht ein „->“.`);const t={};for(const n of e[1].split(/\s*,\s*/).filter(Boolean)){const a=/^(\w+)\s*=\s*(.+)$/.exec(n);if(!a||!(a[1]in Ct))throw new Error(`Unbekannter Sensor in „${n}“.`);t[a[1]]=a[2].split("/").map(s=>{const r=s.trim();if(r==="true"||r==="false")return r==="true";if(/^-?\d+(\.\d+)?$/.test(r))return Number(r);if(typeof Ct[a[1]].simulated=="string")return r;throw new Error(`Messwert „${r}“ ist keine Zahl und nicht true/false.`)})}return ug({inputs:[],expected:[],sensors:t},e[2])}function ug(i,e){const t=[];e=e.replace(/\bscreen\s+("(?:[^"\\]|\\.)*")/u,(n,a)=>(i.screen=JSON.parse(a),""));for(const n of e.split(/\s*,\s*/).filter(Boolean))n==="ledOn"||n==="ledOff"?i.led=n==="ledOn":n==="tone"||n==="noTone"?i.tone=n==="tone":n==="none"?i.drive=[]:n==="drives"?i.drives=!0:t.push(n);return t.length&&(i.drive=ls(Ih(t.join(", ")))),i}function NB(i,e,t){const n={id:i,title:"",task:"",tests:[],requires:[],hints:[],subprograms:[]};let a;for(const s of e){const r=/^(titel|auftrag|start|test|datei|fahrt|befehle|welt|messwerte|schleifentiefe|braucht|tipp|lösung|loesung|unterprogramm|code|bereich):\s*(.*)$/i.exec(s.trim());if(r){const[,o,l]=r;switch(a=void 0,o.toLowerCase()){case"titel":n.title=l;break;case"auftrag":n.task=l,a="task";break;case"start":n.start=l;break;case"test":n.tests.push(WB(l,t));break;case"datei":{const u=/^([\w.-]+)\s*(?:->|→)\s*(.*)$/.exec(l.trim());if(!u||!n.tests.length)throw new ne(`${t}: Übung „${i}“: „datei:“ braucht vorher einen Test und die Form „name.txt -> Zeile | Zeile“.`);const m=n.tests[n.tests.length-1];m.files=[...m.files??[],{name:u[1],lines:u[2].trim()===""?[]:u[2].split(/\s*\|\s*/).map(c=>c.trim())}];break}case"fahrt":try{n.tests.push({inputs:[],expected:[],drive:ls(Ih(l))})}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"welt":{const u=/^([\w-]+)\s*(?:->|→)\s*(.+)$/.exec(l.trim());if(u){try{n.tests.push(ug({inputs:[],expected:[],world:u[1]},u[2]))}catch(m){throw new ne(`${t}: Übung „${i}“: ${m.message}`)}break}for(const m of l.split(/\s*,\s*/).filter(Boolean)){if(!/^[\w-]+$/.test(m))throw new ne(`${t}: Übung „${i}“: Weltname „${m}“ (nur Buchstaben, Ziffern, -).`);n.tests.push({inputs:[],expected:[],world:m})}break}case"befehle":try{n.tests.push({inputs:[],expected:[],actions:Z3(l)})}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"messwerte":try{n.tests.push(EB(l))}catch(u){throw new ne(`${t}: Übung „${i}“: ${u.message}`)}break;case"schleifentiefe":if(n.loopDepth=Number(l),!Number.isInteger(n.loopDepth)||n.loopDepth<1)throw new ne(`${t}: Übung „${i}“: „schleifentiefe:“ braucht eine Zahl ab 1.`);break;case"braucht":n.requires.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"tipp":n.hints.push(l),a="hint";break;case"lösung":case"loesung":n.solution=l;break;case"unterprogramm":n.subprograms.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"code":if(l.trim().toLowerCase()!=="java")throw new ne(`${t}: Übung „${i}“: „code:“ kennt nur „java“.`);n.code="java";break;case"bereich":{const u=l.trim().toLowerCase();if(u!=="struktogramm"&&u!=="code"&&u!=="beide")throw new ne(`${t}: Übung „${i}“: „bereich:“ kennt nur „struktogramm“, „code“ oder „beide“.`);n.area=u;break}}}else a&&s.trim()!==""?a==="task"?n.task+=` `+s.trim():n.hints[n.hints.length-1]+=` `+s.trim():s.trim()===""&&a==="task"&&(n.task+=` -`)}if(!n.title)throw new ne(`${t}: Übung „${i}“ hat keinen Titel.`);if(!n.task.trim())throw new ne(`${t}: Übung „${i}“ hat keinen Auftrag.`);return n.task=n.task.trim(),n}function WZ(i,e){const t=[];for(const n of i){const a=n.trim();if(a.startsWith("?"))t.push({question:a.slice(1).trim(),options:[]});else if(/^- \[[ xX]\]/.test(a)){const s=t.at(-1);if(!s)throw new ne(`${e}: Antwort ohne Frage im Quiz.`);s.options.push({text:a.slice(5).trim(),correct:a[3].toLowerCase()==="x"})}else if(a.startsWith("= ")){const s=t.at(-1),r=/^=\s+(.+?)\s+->\s+(.+)$/.exec(a);if(!s||!r)throw new ne(`${e}: Zuordnung „${a}“ braucht die Form „= links -> rechts“ nach einer Frage.`);(s.pairs??(s.pairs=[])).push({left:r[1].trim(),right:r[2].trim()})}else if(a.startsWith("→")){const s=t.at(-1);if(!s)throw new ne(`${e}: „→ Schritt“ ohne Frage im Quiz.`);s.ref=a.slice(1).trim()}else if(a.startsWith(">")){const s=t.at(-1);s&&(s.explanation=((s.explanation?s.explanation+" ":"")+a.slice(1).trim()).trim())}}for(const n of t){if(n.pairs){const a=new Set(n.pairs.map(s=>s.right));if(n.options.length>0||n.pairs.length<2||a.size!==n.pairs.length)throw new ne(`${e}: Zuordnung „${n.question}“ braucht mindestens zwei Paare mit verschiedenen rechten Seiten und keine Antworten.`);continue}if(n.options.length<2||!n.options.some(a=>a.correct))throw new ne(`${e}: Quizfrage „${n.question}“ braucht mindestens zwei Antworten, davon eine richtige.`)}return t}function mg(i,e){const t=[],n=i.split(` +`)}if(!n.title)throw new ne(`${t}: Übung „${i}“ hat keinen Titel.`);if(!n.task.trim())throw new ne(`${t}: Übung „${i}“ hat keinen Auftrag.`);return n.task=n.task.trim(),n}function JB(i,e){const t=[];for(const n of i){const a=n.trim();if(a.startsWith("?"))t.push({question:a.slice(1).trim(),options:[]});else if(/^- \[[ xX]\]/.test(a)){const s=t.at(-1);if(!s)throw new ne(`${e}: Antwort ohne Frage im Quiz.`);s.options.push({text:a.slice(5).trim(),correct:a[3].toLowerCase()==="x"})}else if(a.startsWith("= ")){const s=t.at(-1),r=/^=\s+(.+?)\s+->\s+(.+)$/.exec(a);if(!s||!r)throw new ne(`${e}: Zuordnung „${a}“ braucht die Form „= links -> rechts“ nach einer Frage.`);(s.pairs??(s.pairs=[])).push({left:r[1].trim(),right:r[2].trim()})}else if(a.startsWith("→")){const s=t.at(-1);if(!s)throw new ne(`${e}: „→ Schritt“ ohne Frage im Quiz.`);s.ref=a.slice(1).trim()}else if(a.startsWith(">")){const s=t.at(-1);s&&(s.explanation=((s.explanation?s.explanation+" ":"")+a.slice(1).trim()).trim())}}for(const n of t){if(n.pairs){const a=new Set(n.pairs.map(s=>s.right));if(n.options.length>0||n.pairs.length<2||a.size!==n.pairs.length)throw new ne(`${e}: Zuordnung „${n.question}“ braucht mindestens zwei Paare mit verschiedenen rechten Seiten und keine Antworten.`);continue}if(n.options.length<2||!n.options.some(a=>a.correct))throw new ne(`${e}: Quizfrage „${n.question}“ braucht mindestens zwei Antworten, davon eine richtige.`)}return t}function mg(i,e){const t=[],n=i.split(` `);let a=[];const s=()=>{const r=a.join(` -`).trim();r&&t.push({kind:"markdown",text:r}),a=[]};for(let r=0;r=n.length)throw new ne(`${e}: Block „::: ${o[1]}“ wird nicht mit „:::“ geschlossen.`);const m=o[1].toLowerCase(),c=o[2].trim();switch(m){case"diagramm":if(!c)throw new ne(`${e}: „::: diagramm“ braucht einen Dateinamen.`);t.push({kind:"diagram",file:c,caption:l.join(" ").trim()});break;case"übung":case"uebung":if(!c)throw new ne(`${e}: „::: übung“ braucht eine Kennung.`);t.push({kind:"exercise",exercise:LZ(c,l,e)});break;case"checkliste":t.push({kind:"checklist",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>EZ(d.slice(2).trim()))});break;case"kompetenzen":t.push({kind:"competences",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>d.slice(2).trim())});break;case"quiz":t.push({kind:"quiz",questions:WZ(l,e)});break;case"bild":if(!c)throw new ne(`${e}: „::: bild“ braucht einen Dateinamen.`);t.push({kind:"images",files:c.split(/\s+/),caption:l.join(" ").trim()});break;case"grafik":if(!c)throw new ne(`${e}: „::: grafik“ braucht einen Dateinamen.`);{const[d,h]=c.split(/\s+/);t.push({kind:"graphic",file:d,...h?{labeled:h}:{},caption:l.join(" ").trim()})}break;case"angeberwissen":t.push({kind:"brag",text:l.join(` -`).trim()});break;case"spiel":try{if(pZ(c))t.push({kind:"roundGame",game:fZ(c,l,e)});else if(c==="prinzessin")t.push({kind:"rescueGame",game:wZ(l,e)});else{if(c)throw new ne(`${e}: Unbekanntes Spiel „${c}“ (zuhoerer, vertrag, layout, bombe, frage, reihenfolge oder prinzessin).`);t.push({kind:"game",game:wb(l,e)})}}catch(d){throw new ne(d.message)}break;case"lückentext":case"lueckentext":try{t.push({kind:"cloze",cloze:IZ(l,e)})}catch(d){throw new ne(d.message)}break;case"pap":try{t.push({kind:"pap",pap:_Z(l,e)})}catch(d){throw new ne(d.message)}break;case"ludwig":t.push({kind:"brag",text:l.join(` -`).trim(),tip:!0});break;case"caesar":{const d=c?Number(c):3;if(!Number.isInteger(d)||d<0||d>25)throw new ne(`${e}: „::: caesar“ braucht einen Schlüssel von 0 bis 25.`);t.push({kind:"caesar",key:d,text:l.join(" ").trim()});break}case"mbot2":{const d={kind:"robotModel",focus:[]};for(const h of l.filter(g=>g.trim())){const g=/^\s*(fokus|focus|ansicht|view|drehen|spin):\s*(.*)$/i.exec(h);if(!g)throw new ne(`${e}: „::: mbot2“ kennt nur Zeilen „fokus:“, „ansicht:“ und „drehen:“.`);const f=g[1].toLowerCase();f==="fokus"||f==="focus"?d.focus=$u(g[2],e):f==="ansicht"||f==="view"?d.view=g[2].trim().toLowerCase():d.spin=/^(ja|yes|true|sim)$/i.test(g[2].trim())}t.push(d);break}case"mbot2quiz":{const d={kind:"robotQuiz",tasks:[]};for(const h of l.filter(g=>g.trim())){const g=/^\s*-\s*(\w+)\s*:\s*(.+)$/.exec(h),f=/^\s*(fertig|done):\s*(.+)$/i.exec(h);if(g)d.tasks.push({part:$u(g[1],e)[0],question:g[2].trim()});else if(f)d.done=f[2].trim();else throw new ne(`${e}: „::: mbot2quiz“ braucht Zeilen „- teil: Frage“ und optional „fertig: Text“.`)}if(!d.tasks.length)throw new ne(`${e}: „::: mbot2quiz“ hat keine Fragen.`);t.push(d);break}case"datei":{if(!/^[\w.-]+\.(txt|csv|json)$/u.test(c))throw new ne(`${e}: „::: datei“ braucht einen Dateinamen wie brief.txt, liste.csv oder daten.json.`);for(;l.length&&l[0].trim()==="";)l.shift();for(;l.length&&l[l.length-1].trim()==="";)l.pop();t.push({kind:"textFile",name:c,content:l.join(` -`)});break}default:throw new ne(`${e}: Unbekannter Block „::: ${o[1]}“.`)}r=u}return s(),t}function EZ(i){const e=/^(.*?)\s+→\s+(.+)$/.exec(i);return e?{text:e[1],ref:e[2].trim()}:{text:i}}function NZ(i,e){const t=new Map(i.map((a,s)=>[a.title.toLowerCase(),s]));for(const a of i.flatMap(s=>s.blocks))if(a.kind==="checklist"){for(const s of a.items)if(s.ref!==void 0&&(s.step=t.get(s.ref.toLowerCase()),s.step===void 0))throw new ne(`${e}: Checkliste verweist auf unbekannten Schritt „${s.ref}“.`)}const n=new Set(i.flatMap(a=>a.blocks).flatMap(a=>a.kind==="checklist"?a.items.map(s=>s.step):[]));for(const a of i.flatMap(s=>s.blocks))if(a.kind==="quiz"){for(const s of a.questions)if(s.ref!==void 0){if(s.step=t.get(s.ref.toLowerCase()),s.step===void 0)throw new ne(`${e}: Quizfrage „${s.question}“ verweist auf unbekannten Schritt „${s.ref}“.`);if(!n.has(s.step))throw new ne(`${e}: Zu „${s.ref}“ (Quizfrage „${s.question}“) gibt es keinen Checklistenpunkt.`)}}}function FZ(i,e){var c;const{meta:t,body:n}=lg(i,e),a=e.replace(/^.*\//,"").replace(/\.md$/,""),s=Number((c=/^(\d+)/.exec(a))==null?void 0:c[1]);if(!Number.isFinite(s))throw new ne(`${e}: Dateiname muss mit der Nummer beginnen (z. B. 01-…).`);const r=[];let o=[],l;const u=()=>{l&&r.push({title:l.title,blocks:mg(l.lines.join(` +`).trim();r&&t.push({kind:"markdown",text:r}),a=[]};for(let r=0;r=n.length)throw new ne(`${e}: Block „::: ${o[1]}“ wird nicht mit „:::“ geschlossen.`);const m=o[1].toLowerCase(),c=o[2].trim();switch(m){case"diagramm":if(!c)throw new ne(`${e}: „::: diagramm“ braucht einen Dateinamen.`);t.push({kind:"diagram",file:c,caption:l.join(" ").trim()});break;case"übung":case"uebung":if(!c)throw new ne(`${e}: „::: übung“ braucht eine Kennung.`);t.push({kind:"exercise",exercise:NB(c,l,e)});break;case"checkliste":t.push({kind:"checklist",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>FB(d.slice(2).trim()))});break;case"kompetenzen":t.push({kind:"competences",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>d.slice(2).trim())});break;case"quiz":t.push({kind:"quiz",questions:JB(l,e)});break;case"bild":if(!c)throw new ne(`${e}: „::: bild“ braucht einen Dateinamen.`);t.push({kind:"images",files:c.split(/\s+/),caption:l.join(" ").trim()});break;case"grafik":if(!c)throw new ne(`${e}: „::: grafik“ braucht einen Dateinamen.`);{const[d,h]=c.split(/\s+/);t.push({kind:"graphic",file:d,...h?{labeled:h}:{},caption:l.join(" ").trim()})}break;case"angeberwissen":t.push({kind:"brag",text:l.join(` +`).trim()});break;case"spiel":try{if(bB(c))t.push({kind:"roundGame",game:vB(c,l,e)});else if(c==="prinzessin")t.push({kind:"rescueGame",game:kB(l,e)});else{if(c)throw new ne(`${e}: Unbekanntes Spiel „${c}“ (zuhoerer, vertrag, layout, bombe, frage, reihenfolge oder prinzessin).`);t.push({kind:"game",game:wb(l,e)})}}catch(d){throw new ne(d.message)}break;case"lückentext":case"lueckentext":try{t.push({kind:"cloze",cloze:TB(l,e)})}catch(d){throw new ne(d.message)}break;case"pap":try{t.push({kind:"pap",pap:AB(l,e)})}catch(d){throw new ne(d.message)}break;case"ludwig":t.push({kind:"brag",text:l.join(` +`).trim(),tip:!0});break;case"caesar":{const d=c?Number(c):3;if(!Number.isInteger(d)||d<0||d>25)throw new ne(`${e}: „::: caesar“ braucht einen Schlüssel von 0 bis 25.`);t.push({kind:"caesar",key:d,text:l.join(" ").trim()});break}case"mbot2":{const d={kind:"robotModel",focus:[]};for(const h of l.filter(g=>g.trim())){const g=/^\s*(fokus|focus|ansicht|view|drehen|spin):\s*(.*)$/i.exec(h);if(!g)throw new ne(`${e}: „::: mbot2“ kennt nur Zeilen „fokus:“, „ansicht:“ und „drehen:“.`);const f=g[1].toLowerCase();f==="fokus"||f==="focus"?d.focus=Yu(g[2],e):f==="ansicht"||f==="view"?d.view=g[2].trim().toLowerCase():d.spin=/^(ja|yes|true|sim)$/i.test(g[2].trim())}t.push(d);break}case"mbot2quiz":{const d={kind:"robotQuiz",tasks:[]};for(const h of l.filter(g=>g.trim())){const g=/^\s*-\s*(\w+)\s*:\s*(.+)$/.exec(h),f=/^\s*(fertig|done):\s*(.+)$/i.exec(h);if(g)d.tasks.push({part:Yu(g[1],e)[0],question:g[2].trim()});else if(f)d.done=f[2].trim();else throw new ne(`${e}: „::: mbot2quiz“ braucht Zeilen „- teil: Frage“ und optional „fertig: Text“.`)}if(!d.tasks.length)throw new ne(`${e}: „::: mbot2quiz“ hat keine Fragen.`);t.push(d);break}case"datei":{if(!/^[\w.-]+\.(txt|csv|json)$/u.test(c))throw new ne(`${e}: „::: datei“ braucht einen Dateinamen wie brief.txt, liste.csv oder daten.json.`);for(;l.length&&l[0].trim()==="";)l.shift();for(;l.length&&l[l.length-1].trim()==="";)l.pop();t.push({kind:"textFile",name:c,content:l.join(` +`)});break}default:throw new ne(`${e}: Unbekannter Block „::: ${o[1]}“.`)}r=u}return s(),t}function FB(i){const e=/^(.*?)\s+→\s+(.+)$/.exec(i);return e?{text:e[1],ref:e[2].trim()}:{text:i}}function RB(i,e){const t=new Map(i.map((a,s)=>[a.title.toLowerCase(),s]));for(const a of i.flatMap(s=>s.blocks))if(a.kind==="checklist"){for(const s of a.items)if(s.ref!==void 0&&(s.step=t.get(s.ref.toLowerCase()),s.step===void 0))throw new ne(`${e}: Checkliste verweist auf unbekannten Schritt „${s.ref}“.`)}const n=new Set(i.flatMap(a=>a.blocks).flatMap(a=>a.kind==="checklist"?a.items.map(s=>s.step):[]));for(const a of i.flatMap(s=>s.blocks))if(a.kind==="quiz"){for(const s of a.questions)if(s.ref!==void 0){if(s.step=t.get(s.ref.toLowerCase()),s.step===void 0)throw new ne(`${e}: Quizfrage „${s.question}“ verweist auf unbekannten Schritt „${s.ref}“.`);if(!n.has(s.step))throw new ne(`${e}: Zu „${s.ref}“ (Quizfrage „${s.question}“) gibt es keinen Checklistenpunkt.`)}}}function GB(i,e){var c;const{meta:t,body:n}=lg(i,e),a=e.replace(/^.*\//,"").replace(/\.md$/,""),s=Number((c=/^(\d+)/.exec(a))==null?void 0:c[1]);if(!Number.isFinite(s))throw new ne(`${e}: Dateiname muss mit der Nummer beginnen (z. B. 01-…).`);const r=[];let o=[],l;const u=()=>{l&&r.push({title:l.title,blocks:mg(l.lines.join(` `),e)})};for(const d of n.split(` -`)){const h=/^##\s+(.*)$/.exec(d);h?(u(),l={title:h[1].trim(),lines:[]}):l?l.lines.push(d):o.push(d)}if(u(),r.length===0)throw new ne(`${e}: Keine Schritte (## Überschrift) gefunden.`);NZ(r,e);const m=t.get("titel");if(!m)throw new ne(`${e}: „titel:“ fehlt.`);return{id:a,number:s,title:m,section:t.get("bereich")??"",summary:t.get("kurz")??o.join(" ").trim(),steps:r}}function JZ(i,e){const{meta:t,body:n}=lg(i,e),a=t.get("titel");if(!a)throw new ne(`${e}: „titel:“ fehlt.`);const s=t.get("nach");return{id:e.replace(/^.*\//,"").replace(/\.md$/,""),title:a,after:s?Number(s):void 0,level:Number(t.get("stufe")??"1")||1,blocks:mg(n,e)}}function $u(i,e){const t=i.split(/\s*,\s*/).map(n=>n.trim()).filter(Boolean);for(const n of t)if(!L3(n))throw new ne(`${e}: Unbekanntes Teil „${n}“. Bekannt: ${kh.join(", ")}.`);return t}const RZ=Object.assign({"../../lessons/de/01-was-ist-ein-struktogramm.md":jb,"../../lessons/de/02-der-editor.md":Cb,"../../lessons/de/03-speichern-oeffnen-exportieren.md":Ab,"../../lessons/de/04-variablen-und-datentypen.md":Pb,"../../lessons/de/05-sequenz.md":Ob,"../../lessons/de/06-eingabe-und-ausgabe.md":Db,"../../lessons/de/07-simulation-und-schreibtischtest.md":Mb,"../../lessons/de/08-verzweigung.md":Bb,"../../lessons/de/09-bedingungen-verknuepfen.md":Zb,"../../lessons/de/10-fallauswahl.md":Lb,"../../lessons/de/11-while-schleife.md":Wb,"../../lessons/de/12-do-while-schleife.md":Eb,"../../lessons/de/13-for-schleife.md":Nb,"../../lessons/de/14-verschachteln.md":Fb,"../../lessons/de/15-arrays.md":Jb,"../../lessons/de/16-zweidimensionale-arrays.md":Rb,"../../lessons/de/17-zeichenketten.md":Gb,"../../lessons/de/18-aufruf-und-aussprung.md":Hb,"../../lessons/de/19-suchen-und-sortieren.md":Vb,"../../lessons/de/20-java.md":qb,"../../lessons/de/21-python-und-javascript.md":Qb,"../../lessons/de/22-try-und-catch.md":Ub,"../../lessons/de/23-text-einlesen-und-speichern.md":$b,"../../lessons/de/24-zeile-fuer-zeile.md":Yb,"../../lessons/de/25-tabellen-als-csv.md":Xb,"../../lessons/de/26-json.md":Kb,"../../lessons/de/27-formate-im-vergleich.md":e4,"../../lessons/de/28-erstes-fenster.md":t4,"../../lessons/de/29-knopf-im-fenster.md":n4,"../../lessons/de/30-der-knopf-reagiert.md":i4,"../../lessons/de/31-zahl-verdoppeln.md":a4,"../../lessons/de/32-klickzaehler.md":s4,"../../lessons/de/33-ampel.md":r4,"../../lessons/de/34-notenrechner.md":o4,"../../lessons/de/35-taschenrechner.md":l4,"../../lessons/de/36-zahlenraten.md":u4,"../../lessons/de/37-viele-knoepfe-ein-zuhoerer.md":m4,"../../lessons/de/38-innere-klassen.md":c4,"../../lessons/de/39-zwei-reiter.md":d4,"../../lessons/de/40-model-view-controller.md":h4,"../../lessons/de/begriffe.md":g4,"../../lessons/de/nachschlagen.md":p4,"../../lessons/en/01-was-ist-ein-struktogramm.md":f4,"../../lessons/en/02-der-editor.md":x4,"../../lessons/en/03-speichern-oeffnen-exportieren.md":b4,"../../lessons/en/04-variablen-und-datentypen.md":v4,"../../lessons/en/05-sequenz.md":y4,"../../lessons/en/06-eingabe-und-ausgabe.md":w4,"../../lessons/en/07-simulation-und-schreibtischtest.md":z4,"../../lessons/en/08-verzweigung.md":I4,"../../lessons/en/09-bedingungen-verknuepfen.md":k4,"../../lessons/en/10-fallauswahl.md":S4,"../../lessons/en/11-while-schleife.md":T4,"../../lessons/en/12-do-while-schleife.md":_4,"../../lessons/en/13-for-schleife.md":j4,"../../lessons/en/14-verschachteln.md":C4,"../../lessons/en/15-arrays.md":A4,"../../lessons/en/16-zweidimensionale-arrays.md":P4,"../../lessons/en/17-zeichenketten.md":O4,"../../lessons/en/18-aufruf-und-aussprung.md":D4,"../../lessons/en/19-suchen-und-sortieren.md":M4,"../../lessons/en/20-java.md":B4,"../../lessons/en/21-python-und-javascript.md":Z4,"../../lessons/en/22-try-und-catch.md":L4,"../../lessons/en/23-text-einlesen-und-speichern.md":W4,"../../lessons/en/24-zeile-fuer-zeile.md":E4,"../../lessons/en/25-tabellen-als-csv.md":N4,"../../lessons/en/26-json.md":F4,"../../lessons/en/27-formate-im-vergleich.md":J4,"../../lessons/en/28-erstes-fenster.md":R4,"../../lessons/en/29-knopf-im-fenster.md":G4,"../../lessons/en/30-der-knopf-reagiert.md":H4,"../../lessons/en/31-zahl-verdoppeln.md":V4,"../../lessons/en/32-klickzaehler.md":q4,"../../lessons/en/33-ampel.md":Q4,"../../lessons/en/34-notenrechner.md":U4,"../../lessons/en/35-taschenrechner.md":$4,"../../lessons/en/36-zahlenraten.md":Y4,"../../lessons/en/37-viele-knoepfe-ein-zuhoerer.md":X4,"../../lessons/en/38-innere-klassen.md":K4,"../../lessons/en/39-zwei-reiter.md":ev,"../../lessons/en/40-model-view-controller.md":tv,"../../lessons/en/begriffe.md":nv,"../../lessons/en/nachschlagen.md":iv,"../../lessons/pt/01-was-ist-ein-struktogramm.md":av,"../../lessons/pt/02-der-editor.md":sv,"../../lessons/pt/03-speichern-oeffnen-exportieren.md":rv,"../../lessons/pt/04-variablen-und-datentypen.md":ov,"../../lessons/pt/05-sequenz.md":lv,"../../lessons/pt/06-eingabe-und-ausgabe.md":uv,"../../lessons/pt/07-simulation-und-schreibtischtest.md":mv,"../../lessons/pt/08-verzweigung.md":cv,"../../lessons/pt/09-bedingungen-verknuepfen.md":dv,"../../lessons/pt/10-fallauswahl.md":hv,"../../lessons/pt/11-while-schleife.md":gv,"../../lessons/pt/12-do-while-schleife.md":pv,"../../lessons/pt/13-for-schleife.md":fv,"../../lessons/pt/14-verschachteln.md":xv,"../../lessons/pt/15-arrays.md":bv,"../../lessons/pt/16-zweidimensionale-arrays.md":vv,"../../lessons/pt/17-zeichenketten.md":yv,"../../lessons/pt/18-aufruf-und-aussprung.md":wv,"../../lessons/pt/19-suchen-und-sortieren.md":zv,"../../lessons/pt/20-java.md":Iv,"../../lessons/pt/21-python-und-javascript.md":kv,"../../lessons/pt/22-try-und-catch.md":Sv,"../../lessons/pt/23-text-einlesen-und-speichern.md":Tv,"../../lessons/pt/24-zeile-fuer-zeile.md":_v,"../../lessons/pt/25-tabellen-als-csv.md":jv,"../../lessons/pt/26-json.md":Cv,"../../lessons/pt/27-formate-im-vergleich.md":Av,"../../lessons/pt/28-erstes-fenster.md":Pv,"../../lessons/pt/29-knopf-im-fenster.md":Ov,"../../lessons/pt/30-der-knopf-reagiert.md":Dv,"../../lessons/pt/31-zahl-verdoppeln.md":Mv,"../../lessons/pt/32-klickzaehler.md":Bv,"../../lessons/pt/33-ampel.md":Zv,"../../lessons/pt/34-notenrechner.md":Lv,"../../lessons/pt/35-taschenrechner.md":Wv,"../../lessons/pt/36-zahlenraten.md":Ev,"../../lessons/pt/37-viele-knoepfe-ein-zuhoerer.md":Nv,"../../lessons/pt/38-innere-klassen.md":Fv,"../../lessons/pt/39-zwei-reiter.md":Jv,"../../lessons/pt/40-model-view-controller.md":Rv,"../../lessons/pt/begriffe.md":Gv,"../../lessons/pt/nachschlagen.md":Hv}),GZ=Object.assign({"../../lessons/de/aufgaben/alter-unterprogramm.md":Vv,"../../lessons/de/aufgaben/ballwurf.md":qv,"../../lessons/de/aufgaben/bestenliste.md":Qv,"../../lessons/de/aufgaben/binaerzahl.md":Uv,"../../lessons/de/aufgaben/caesar.md":$v,"../../lessons/de/aufgaben/collatz.md":Yv,"../../lessons/de/aufgaben/einheitenrechner.md":Xv,"../../lessons/de/aufgaben/fibonacci.md":Kv,"../../lessons/de/aufgaben/gerade-ungerade.md":ey,"../../lessons/de/aufgaben/mehrwertsteuer.md":ty,"../../lessons/de/aufgaben/notendurchschnitt.md":ny,"../../lessons/de/aufgaben/pin-pruefen.md":iy,"../../lessons/de/aufgaben/schiffe-versenken.md":ay,"../../lessons/de/aufgaben/speisekarte.md":sy,"../../lessons/de/aufgaben/summe-bilden.md":ry,"../../lessons/de/aufgaben/tafeldienst.md":oy,"../../lessons/de/aufgaben/taschenrechner.md":ly,"../../lessons/de/aufgaben/verleih-menue.md":uy,"../../lessons/de/aufgaben/vokabeltrainer.md":my,"../../lessons/de/aufgaben/volljaehrig.md":cy,"../../lessons/de/aufgaben/wuerfel-mvc.md":dy,"../../lessons/de/aufgaben/zahl-verdoppeln.md":hy,"../../lessons/en/aufgaben/alter-unterprogramm.md":gy,"../../lessons/en/aufgaben/ballwurf.md":py,"../../lessons/en/aufgaben/bestenliste.md":fy,"../../lessons/en/aufgaben/binaerzahl.md":xy,"../../lessons/en/aufgaben/caesar.md":by,"../../lessons/en/aufgaben/collatz.md":vy,"../../lessons/en/aufgaben/einheitenrechner.md":yy,"../../lessons/en/aufgaben/fibonacci.md":wy,"../../lessons/en/aufgaben/gerade-ungerade.md":zy,"../../lessons/en/aufgaben/mehrwertsteuer.md":Iy,"../../lessons/en/aufgaben/notendurchschnitt.md":ky,"../../lessons/en/aufgaben/pin-pruefen.md":Sy,"../../lessons/en/aufgaben/schiffe-versenken.md":Ty,"../../lessons/en/aufgaben/speisekarte.md":_y,"../../lessons/en/aufgaben/summe-bilden.md":jy,"../../lessons/en/aufgaben/tafeldienst.md":Cy,"../../lessons/en/aufgaben/taschenrechner.md":Ay,"../../lessons/en/aufgaben/verleih-menue.md":Py,"../../lessons/en/aufgaben/vokabeltrainer.md":Oy,"../../lessons/en/aufgaben/volljaehrig.md":Dy,"../../lessons/en/aufgaben/wuerfel-mvc.md":My,"../../lessons/en/aufgaben/zahl-verdoppeln.md":By,"../../lessons/pt/aufgaben/alter-unterprogramm.md":Zy,"../../lessons/pt/aufgaben/ballwurf.md":Ly,"../../lessons/pt/aufgaben/bestenliste.md":Wy,"../../lessons/pt/aufgaben/binaerzahl.md":Ey,"../../lessons/pt/aufgaben/caesar.md":Ny,"../../lessons/pt/aufgaben/collatz.md":Fy,"../../lessons/pt/aufgaben/einheitenrechner.md":Jy,"../../lessons/pt/aufgaben/fibonacci.md":Ry,"../../lessons/pt/aufgaben/gerade-ungerade.md":Gy,"../../lessons/pt/aufgaben/mehrwertsteuer.md":Hy,"../../lessons/pt/aufgaben/notendurchschnitt.md":Vy,"../../lessons/pt/aufgaben/pin-pruefen.md":qy,"../../lessons/pt/aufgaben/schiffe-versenken.md":Qy,"../../lessons/pt/aufgaben/speisekarte.md":Uy,"../../lessons/pt/aufgaben/summe-bilden.md":$y,"../../lessons/pt/aufgaben/tafeldienst.md":Yy,"../../lessons/pt/aufgaben/taschenrechner.md":Xy,"../../lessons/pt/aufgaben/verleih-menue.md":Ky,"../../lessons/pt/aufgaben/vokabeltrainer.md":e9,"../../lessons/pt/aufgaben/volljaehrig.md":t9,"../../lessons/pt/aufgaben/wuerfel-mvc.md":n9,"../../lessons/pt/aufgaben/zahl-verdoppeln.md":i9}),Yu=Object.assign({"../../lessons/de/visubot/01-der-mbot2.md":a9,"../../lessons/de/visubot/02-das-quadrat.md":s9,"../../lessons/de/visubot/03-variablen-und-ausgabe.md":r9,"../../lessons/de/visubot/04-sensoren.md":o9,"../../lessons/de/visubot/05-bis-zur-wand.md":l9,"../../lessons/de/visubot/06-abstand.md":u9,"../../lessons/de/visubot/07-linie.md":m9,"../../lessons/de/visubot/08-farben.md":c9,"../../lessons/de/visubot/09-fallauswahl.md":d9,"../../lessons/de/visubot/10-tasten-joystick.md":h9,"../../lessons/de/visubot/11-licht.md":g9,"../../lessons/de/visubot/12-lautstaerke.md":p9,"../../lessons/de/visubot/13-neigung.md":f9,"../../lessons/de/visubot/14-leds.md":x9,"../../lessons/de/visubot/15-einzelne-leds.md":b9,"../../lessons/de/visubot/16-lautsprecher.md":v9,"../../lessons/de/visubot/17-arrays-melodie.md":y9,"../../lessons/de/visubot/18-bildschirm.md":w9,"../../lessons/de/visubot/19-zeichenketten.md":z9,"../../lessons/de/visubot/20-motoren.md":I9,"../../lessons/de/visubot/21-stoppuhr-akku.md":k9,"../../lessons/de/visubot/22-eigene-methoden.md":S9,"../../lessons/de/visubot/nachschlagen.md":T9,"../../lessons/en/visubot/01-der-mbot2.md":_9,"../../lessons/en/visubot/02-das-quadrat.md":j9,"../../lessons/en/visubot/03-variablen-und-ausgabe.md":C9,"../../lessons/en/visubot/04-sensoren.md":A9,"../../lessons/en/visubot/05-bis-zur-wand.md":P9,"../../lessons/en/visubot/06-abstand.md":O9,"../../lessons/en/visubot/07-linie.md":D9,"../../lessons/en/visubot/08-farben.md":M9,"../../lessons/en/visubot/09-fallauswahl.md":B9,"../../lessons/en/visubot/10-tasten-joystick.md":Z9,"../../lessons/en/visubot/11-licht.md":L9,"../../lessons/en/visubot/12-lautstaerke.md":W9,"../../lessons/en/visubot/13-neigung.md":E9,"../../lessons/en/visubot/14-leds.md":N9,"../../lessons/en/visubot/15-einzelne-leds.md":F9,"../../lessons/en/visubot/16-lautsprecher.md":J9,"../../lessons/en/visubot/17-arrays-melodie.md":R9,"../../lessons/en/visubot/18-bildschirm.md":G9,"../../lessons/en/visubot/19-zeichenketten.md":H9,"../../lessons/en/visubot/20-motoren.md":V9,"../../lessons/en/visubot/21-stoppuhr-akku.md":q9,"../../lessons/en/visubot/22-eigene-methoden.md":Q9,"../../lessons/en/visubot/nachschlagen.md":U9}),HZ=Object.assign({"../../lessons/de/visubot/aufgaben/alarmanlage.md":$9,"../../lessons/de/visubot/aufgaben/ausgang.md":Y9,"../../lessons/de/visubot/aufgaben/binaer-zaehlen.md":X9,"../../lessons/de/visubot/aufgaben/dreieck.md":K9,"../../lessons/de/visubot/aufgaben/einparken.md":ew,"../../lessons/de/visubot/aufgaben/hindernis.md":tw,"../../lessons/de/visubot/aufgaben/knight-rider.md":nw,"../../lessons/de/visubot/aufgaben/labyrinth.md":iw,"../../lessons/de/visubot/aufgaben/linienfolger-stopp.md":aw,"../../lessons/de/visubot/aufgaben/morsen.md":sw,"../../lessons/de/visubot/aufgaben/nachtwaechter.md":rw,"../../lessons/de/visubot/aufgaben/slalom.md":ow,"../../lessons/de/visubot/aufgaben/spirale.md":lw,"../../lessons/de/visubot/aufgaben/treppe.md":uw,"../../lessons/de/visubot/aufgaben/tunnel.md":mw,"../../lessons/de/visubot/aufgaben/wald.md":cw,"../../lessons/en/visubot/aufgaben/alarmanlage.md":dw,"../../lessons/en/visubot/aufgaben/ausgang.md":hw,"../../lessons/en/visubot/aufgaben/binaer-zaehlen.md":gw,"../../lessons/en/visubot/aufgaben/dreieck.md":pw,"../../lessons/en/visubot/aufgaben/einparken.md":fw,"../../lessons/en/visubot/aufgaben/hindernis.md":xw,"../../lessons/en/visubot/aufgaben/knight-rider.md":bw,"../../lessons/en/visubot/aufgaben/labyrinth.md":vw,"../../lessons/en/visubot/aufgaben/linienfolger-stopp.md":yw,"../../lessons/en/visubot/aufgaben/morsen.md":ww,"../../lessons/en/visubot/aufgaben/nachtwaechter.md":zw,"../../lessons/en/visubot/aufgaben/slalom.md":Iw,"../../lessons/en/visubot/aufgaben/spirale.md":kw,"../../lessons/en/visubot/aufgaben/treppe.md":Sw,"../../lessons/en/visubot/aufgaben/tunnel.md":Tw,"../../lessons/en/visubot/aufgaben/wald.md":_w}),VZ=Object.assign({"../../lessons/diagramme/aufgabe-alter-haupt-loesung.visustruct":jw,"../../lessons/diagramme/aufgabe-alter-unterprogramm-loesung.visustruct":Cw,"../../lessons/diagramme/aufgabe-ballwurf-loesung.visustruct":Aw,"../../lessons/diagramme/aufgabe-ballwurf-start.visustruct":Pw,"../../lessons/diagramme/aufgabe-bestenliste-loesung.visustruct":Ow,"../../lessons/diagramme/aufgabe-binaer-loesung.visustruct":Dw,"../../lessons/diagramme/aufgabe-caesar-array-loesung.visustruct":Mw,"../../lessons/diagramme/aufgabe-caesar-array-start.visustruct":Bw,"../../lessons/diagramme/aufgabe-caesar-ascii-loesung.visustruct":Zw,"../../lessons/diagramme/aufgabe-caesar-entschluesseln-loesung.visustruct":Lw,"../../lessons/diagramme/aufgabe-collatz-loesung.visustruct":Ww,"../../lessons/diagramme/aufgabe-durchschnitt-loesung.visustruct":Ew,"../../lessons/diagramme/aufgabe-fibonacci-loesung.visustruct":Nw,"../../lessons/diagramme/aufgabe-gerade-loesung.visustruct":Fw,"../../lessons/diagramme/aufgabe-mehrwertsteuer-loesung.visustruct":Jw,"../../lessons/diagramme/aufgabe-pin-java-loesung.visustruct":Rw,"../../lessons/diagramme/aufgabe-pin-loesung.visustruct":Gw,"../../lessons/diagramme/aufgabe-rechner-loesung.visustruct":Hw,"../../lessons/diagramme/aufgabe-schiffe-loesung.visustruct":Vw,"../../lessons/diagramme/aufgabe-schiffe-start.visustruct":qw,"../../lessons/diagramme/aufgabe-speisekarte-loesung.visustruct":Qw,"../../lessons/diagramme/aufgabe-summe-loesung.visustruct":Uw,"../../lessons/diagramme/aufgabe-tafeldienst-loesung.visustruct":$w,"../../lessons/diagramme/aufgabe-verdoppeln-loesung.visustruct":Yw,"../../lessons/diagramme/aufgabe-verleih-java-loesung.visustruct":Xw,"../../lessons/diagramme/aufgabe-verleih-loesung.visustruct":Kw,"../../lessons/diagramme/aufgabe-vokabeln-loesung.visustruct":e5,"../../lessons/diagramme/aufgabe-vokabeln-start.visustruct":t5,"../../lessons/diagramme/aufgabe-volljaehrig-loesung.visustruct":n5,"../../lessons/diagramme/dt-buffered.visustruct":i5,"../../lessons/diagramme/dt-csv.visustruct":a5,"../../lessons/diagramme/dt-json.visustruct":s5,"../../lessons/diagramme/dt-lesen.visustruct":r5,"../../lessons/diagramme/en/aufgabe-alter-haupt-loesung.visustruct":o5,"../../lessons/diagramme/en/aufgabe-alter-unterprogramm-loesung.visustruct":l5,"../../lessons/diagramme/en/aufgabe-ballwurf-loesung.visustruct":u5,"../../lessons/diagramme/en/aufgabe-ballwurf-start.visustruct":m5,"../../lessons/diagramme/en/aufgabe-bestenliste-loesung.visustruct":c5,"../../lessons/diagramme/en/aufgabe-binaer-loesung.visustruct":d5,"../../lessons/diagramme/en/aufgabe-caesar-array-loesung.visustruct":h5,"../../lessons/diagramme/en/aufgabe-caesar-array-start.visustruct":g5,"../../lessons/diagramme/en/aufgabe-caesar-ascii-loesung.visustruct":p5,"../../lessons/diagramme/en/aufgabe-caesar-entschluesseln-loesung.visustruct":f5,"../../lessons/diagramme/en/aufgabe-collatz-loesung.visustruct":x5,"../../lessons/diagramme/en/aufgabe-durchschnitt-loesung.visustruct":b5,"../../lessons/diagramme/en/aufgabe-fibonacci-loesung.visustruct":v5,"../../lessons/diagramme/en/aufgabe-gerade-loesung.visustruct":y5,"../../lessons/diagramme/en/aufgabe-mehrwertsteuer-loesung.visustruct":w5,"../../lessons/diagramme/en/aufgabe-pin-java-loesung.visustruct":z5,"../../lessons/diagramme/en/aufgabe-pin-loesung.visustruct":I5,"../../lessons/diagramme/en/aufgabe-rechner-loesung.visustruct":k5,"../../lessons/diagramme/en/aufgabe-schiffe-loesung.visustruct":S5,"../../lessons/diagramme/en/aufgabe-schiffe-start.visustruct":T5,"../../lessons/diagramme/en/aufgabe-speisekarte-loesung.visustruct":_5,"../../lessons/diagramme/en/aufgabe-summe-loesung.visustruct":j5,"../../lessons/diagramme/en/aufgabe-tafeldienst-loesung.visustruct":C5,"../../lessons/diagramme/en/aufgabe-verdoppeln-loesung.visustruct":A5,"../../lessons/diagramme/en/aufgabe-verleih-java-loesung.visustruct":P5,"../../lessons/diagramme/en/aufgabe-verleih-loesung.visustruct":O5,"../../lessons/diagramme/en/aufgabe-vokabeln-loesung.visustruct":D5,"../../lessons/diagramme/en/aufgabe-vokabeln-start.visustruct":M5,"../../lessons/diagramme/en/aufgabe-volljaehrig-loesung.visustruct":B5,"../../lessons/diagramme/en/dt-buffered.visustruct":Z5,"../../lessons/diagramme/en/dt-csv.visustruct":L5,"../../lessons/diagramme/en/dt-json.visustruct":W5,"../../lessons/diagramme/en/dt-lesen.visustruct":E5,"../../lessons/diagramme/en/kino-einmaleins-loesung.visustruct":N5,"../../lessons/diagramme/en/kino-frei-loesung.visustruct":F5,"../../lessons/diagramme/en/kino-frei-start.visustruct":J5,"../../lessons/diagramme/en/kino-karte-loesung.visustruct":R5,"../../lessons/diagramme/en/kino-karte-start.visustruct":G5,"../../lessons/diagramme/en/kino-saalplan.visustruct":H5,"../../lessons/diagramme/en/kino-verkaufen.visustruct":V5,"../../lessons/diagramme/en/l04-gross-klein-loesung.visustruct":q5,"../../lessons/diagramme/en/l04-gross-klein-start.visustruct":Q5,"../../lessons/diagramme/en/l04-java-fehler-loesung.visustruct":U5,"../../lessons/diagramme/en/l04-java-fehler-start.visustruct":$5,"../../lessons/diagramme/en/l04-java-laeuft-nicht-loesung.visustruct":Y5,"../../lessons/diagramme/en/l04-java-laeuft-nicht-start.visustruct":X5,"../../lessons/diagramme/en/l04-java-steckbrief-loesung.visustruct":K5,"../../lessons/diagramme/en/l04-rechnen.visustruct":ez,"../../lessons/diagramme/en/l04-reihenfolge-loesung.visustruct":tz,"../../lessons/diagramme/en/l04-reihenfolge-start.visustruct":nz,"../../lessons/diagramme/en/l04-tauschen-loesung.visustruct":iz,"../../lessons/diagramme/en/l04-tauschen-start.visustruct":az,"../../lessons/diagramme/en/l04-tauschen.visustruct":sz,"../../lessons/diagramme/en/l05-datentypen.visustruct":rz,"../../lessons/diagramme/en/l05-division.visustruct":oz,"../../lessons/diagramme/en/l05-einkauf-loesung.visustruct":lz,"../../lessons/diagramme/en/l05-java-fehler-loesung.visustruct":uz,"../../lessons/diagramme/en/l05-java-fehler-start.visustruct":mz,"../../lessons/diagramme/en/l05-java-kino-loesung.visustruct":cz,"../../lessons/diagramme/en/l05-java-laeuft-nicht-loesung.visustruct":dz,"../../lessons/diagramme/en/l05-java-laeuft-nicht-start.visustruct":hz,"../../lessons/diagramme/en/l05-rechteck-loesung.visustruct":gz,"../../lessons/diagramme/en/l05-sekunden-loesung.visustruct":pz,"../../lessons/diagramme/en/l05-sekunden-start.visustruct":fz,"../../lessons/diagramme/en/l05-sequenz.visustruct":xz,"../../lessons/diagramme/en/l06-begruessung-loesung.visustruct":bz,"../../lessons/diagramme/en/l06-eva.visustruct":vz,"../../lessons/diagramme/en/l06-java-fehler-loesung.visustruct":yz,"../../lessons/diagramme/en/l06-java-fehler-start.visustruct":wz,"../../lessons/diagramme/en/l06-java-laeuft-nicht-loesung.visustruct":zz,"../../lessons/diagramme/en/l06-java-laeuft-nicht-start.visustruct":Iz,"../../lessons/diagramme/en/l06-java-tage-loesung.visustruct":kz,"../../lessons/diagramme/en/l06-mittelwert-loesung.visustruct":Sz,"../../lessons/diagramme/en/l06-rechner-loesung.visustruct":Tz,"../../lessons/diagramme/en/l07-alter-pruefen.visustruct":_z,"../../lessons/diagramme/en/l07-betrag-loesung.visustruct":jz,"../../lessons/diagramme/en/l07-gerade-loesung.visustruct":Cz,"../../lessons/diagramme/en/l07-java-fehler-loesung.visustruct":Az,"../../lessons/diagramme/en/l07-java-fehler-start.visustruct":Pz,"../../lessons/diagramme/en/l07-java-laeuft-nicht-loesung.visustruct":Oz,"../../lessons/diagramme/en/l07-java-laeuft-nicht-start.visustruct":Dz,"../../lessons/diagramme/en/l07-java-pizza-loesung.visustruct":Mz,"../../lessons/diagramme/en/l07-java-pizza-start.visustruct":Bz,"../../lessons/diagramme/en/l07-maximum-loesung.visustruct":Zz,"../../lessons/diagramme/en/l07-rabatt.visustruct":Lz,"../../lessons/diagramme/en/l08-gueltig-loesung.visustruct":Wz,"../../lessons/diagramme/en/l08-java-bestanden-loesung.visustruct":Ez,"../../lessons/diagramme/en/l08-java-fehler-loesung.visustruct":Nz,"../../lessons/diagramme/en/l08-java-fehler-start.visustruct":Fz,"../../lessons/diagramme/en/l08-java-laeuft-nicht-loesung.visustruct":Jz,"../../lessons/diagramme/en/l08-java-laeuft-nicht-start.visustruct":Rz,"../../lessons/diagramme/en/l08-jugendticket.visustruct":Gz,"../../lessons/diagramme/en/l08-note.visustruct":Hz,"../../lessons/diagramme/en/l08-schaltjahr-loesung.visustruct":Vz,"../../lessons/diagramme/en/l08-wochenende-loesung.visustruct":qz,"../../lessons/diagramme/en/l09-ampel.visustruct":Qz,"../../lessons/diagramme/en/l09-automat.visustruct":Uz,"../../lessons/diagramme/en/l09-java-fehler-loesung.visustruct":$z,"../../lessons/diagramme/en/l09-java-fehler-start.visustruct":Yz,"../../lessons/diagramme/en/l09-java-laeuft-nicht-loesung.visustruct":Xz,"../../lessons/diagramme/en/l09-java-laeuft-nicht-start.visustruct":Kz,"../../lessons/diagramme/en/l09-java-schule-loesung.visustruct":e6,"../../lessons/diagramme/en/l09-note-loesung.visustruct":t6,"../../lessons/diagramme/en/l09-rechner-loesung.visustruct":n6,"../../lessons/diagramme/en/l09-verschachtelt.visustruct":i6,"../../lessons/diagramme/en/l1-grundbausteine.visustruct":a6,"../../lessons/diagramme/en/l1-sequenz.visustruct":s6,"../../lessons/diagramme/en/l1-tee.visustruct":r6,"../../lessons/diagramme/en/l1-verzweigung.visustruct":o6,"../../lessons/diagramme/en/l1-wiederholung.visustruct":l6,"../../lessons/diagramme/en/l10-bis-n-loesung.visustruct":u6,"../../lessons/diagramme/en/l10-countdown.visustruct":m6,"../../lessons/diagramme/en/l10-endlos.visustruct":c6,"../../lessons/diagramme/en/l10-fakultaet.visustruct":d6,"../../lessons/diagramme/en/l10-java-fehler-loesung.visustruct":h6,"../../lessons/diagramme/en/l10-java-fehler-start.visustruct":g6,"../../lessons/diagramme/en/l10-java-laeuft-nicht-loesung.visustruct":p6,"../../lessons/diagramme/en/l10-java-laeuft-nicht-start.visustruct":f6,"../../lessons/diagramme/en/l10-java-wuerfel-loesung.visustruct":x6,"../../lessons/diagramme/en/l10-verdoppeln-loesung.visustruct":b6,"../../lessons/diagramme/en/l11-eingabe-pruefen.visustruct":v6,"../../lessons/diagramme/en/l11-einmal.visustruct":y6,"../../lessons/diagramme/en/l11-java-fehler-loesung.visustruct":w6,"../../lessons/diagramme/en/l11-java-fehler-start.visustruct":z6,"../../lessons/diagramme/en/l11-java-gerade-loesung.visustruct":I6,"../../lessons/diagramme/en/l11-java-laeuft-nicht-loesung.visustruct":k6,"../../lessons/diagramme/en/l11-java-laeuft-nicht-start.visustruct":S6,"../../lessons/diagramme/en/l11-note-loesung.visustruct":T6,"../../lessons/diagramme/en/l11-summe-loesung.visustruct":_6,"../../lessons/diagramme/en/l12-countdown-loesung.visustruct":j6,"../../lessons/diagramme/en/l12-einmaleins-loesung.visustruct":C6,"../../lessons/diagramme/en/l12-eins-bis-fuenf.visustruct":A6,"../../lessons/diagramme/en/l12-java-fehler-loesung.visustruct":P6,"../../lessons/diagramme/en/l12-java-fehler-start.visustruct":O6,"../../lessons/diagramme/en/l12-java-laeuft-nicht-loesung.visustruct":D6,"../../lessons/diagramme/en/l12-java-laeuft-nicht-start.visustruct":M6,"../../lessons/diagramme/en/l12-java-verdoppeln-loesung.visustruct":B6,"../../lessons/diagramme/en/l12-summe.visustruct":Z6,"../../lessons/diagramme/en/l13-dreieck.visustruct":L6,"../../lessons/diagramme/en/l13-gerade-eingaben-loesung.visustruct":W6,"../../lessons/diagramme/en/l13-gerade-zaehlen.visustruct":E6,"../../lessons/diagramme/en/l13-java-fehler-loesung.visustruct":N6,"../../lessons/diagramme/en/l13-java-fehler-start.visustruct":F6,"../../lessons/diagramme/en/l13-java-laeuft-nicht-loesung.visustruct":J6,"../../lessons/diagramme/en/l13-java-laeuft-nicht-start.visustruct":R6,"../../lessons/diagramme/en/l13-java-quadrate-loesung.visustruct":G6,"../../lessons/diagramme/en/l13-rechteck-loesung.visustruct":H6,"../../lessons/diagramme/en/l14-array-durchlaufen.visustruct":V6,"../../lessons/diagramme/en/l14-erster-letzter-loesung.visustruct":q6,"../../lessons/diagramme/en/l14-java-fehler-loesung.visustruct":Q6,"../../lessons/diagramme/en/l14-java-fehler-start.visustruct":U6,"../../lessons/diagramme/en/l14-java-laeuft-nicht-loesung.visustruct":$6,"../../lessons/diagramme/en/l14-java-laeuft-nicht-start.visustruct":Y6,"../../lessons/diagramme/en/l14-java-treppe-loesung.visustruct":X6,"../../lessons/diagramme/en/l14-namen-eingeben.visustruct":K6,"../../lessons/diagramme/en/l14-rueckwaerts-loesung.visustruct":eI,"../../lessons/diagramme/en/l14-summe-max-loesung.visustruct":tI,"../../lessons/diagramme/en/l14-summe-maximum.visustruct":nI,"../../lessons/diagramme/en/l15-bis-null-loesung.visustruct":iI,"../../lessons/diagramme/en/l15-endlos-aussprung.visustruct":aI,"../../lessons/diagramme/en/l15-flaeche-loesung.visustruct":sI,"../../lessons/diagramme/en/l15-flaeche-unterprogramm-loesung.visustruct":rI,"../../lessons/diagramme/en/l15-hauptprogramm.visustruct":oI,"../../lessons/diagramme/en/l15-java-fehler-loesung.visustruct":lI,"../../lessons/diagramme/en/l15-java-fehler-start.visustruct":uI,"../../lessons/diagramme/en/l15-java-laeuft-nicht-loesung.visustruct":mI,"../../lessons/diagramme/en/l15-java-laeuft-nicht-start.visustruct":cI,"../../lessons/diagramme/en/l15-java-noten-loesung.visustruct":dI,"../../lessons/diagramme/en/l15-quadrat-haupt.visustruct":hI,"../../lessons/diagramme/en/l15-quadrat.visustruct":gI,"../../lessons/diagramme/en/l15-titel-loesung.visustruct":pI,"../../lessons/diagramme/en/l15-unterprogramm.visustruct":fI,"../../lessons/diagramme/en/l15-zeige-summe-haupt.visustruct":xI,"../../lessons/diagramme/en/l15-zeige-summe.visustruct":bI,"../../lessons/diagramme/en/l16-countdown-loesung.visustruct":vI,"../../lessons/diagramme/en/l16-countdown-start.visustruct":yI,"../../lessons/diagramme/en/l16-java-fehler-loesung.visustruct":wI,"../../lessons/diagramme/en/l16-java-fehler-start.visustruct":zI,"../../lessons/diagramme/en/l16-java-laeuft-nicht-loesung.visustruct":II,"../../lessons/diagramme/en/l16-java-laeuft-nicht-start.visustruct":kI,"../../lessons/diagramme/en/l16-java-punkte-loesung.visustruct":SI,"../../lessons/diagramme/en/l16-schreibtisch.visustruct":TI,"../../lessons/diagramme/en/l16-summe-loesung.visustruct":_I,"../../lessons/diagramme/en/l16-summe-start.visustruct":jI,"../../lessons/diagramme/en/l17-beispiel.visustruct":CI,"../../lessons/diagramme/en/l17-fakultaet-loesung.visustruct":AI,"../../lessons/diagramme/en/l17-java-brief-loesung.visustruct":PI,"../../lessons/diagramme/en/l17-java-brief-start.visustruct":OI,"../../lessons/diagramme/en/l17-java-fehler-loesung.visustruct":DI,"../../lessons/diagramme/en/l17-java-fehler-start.visustruct":MI,"../../lessons/diagramme/en/l17-java-laeuft-nicht-loesung.visustruct":BI,"../../lessons/diagramme/en/l17-java-laeuft-nicht-start.visustruct":ZI,"../../lessons/diagramme/en/l17-java-passwort-loesung.visustruct":LI,"../../lessons/diagramme/en/l17-ticket-loesung.visustruct":WI,"../../lessons/diagramme/en/l18-beispiel.visustruct":EI,"../../lessons/diagramme/en/l18-java-fehler-loesung.visustruct":NI,"../../lessons/diagramme/en/l18-java-fehler-start.visustruct":FI,"../../lessons/diagramme/en/l18-java-kasse-loesung.visustruct":JI,"../../lessons/diagramme/en/l18-js-loesung.visustruct":RI,"../../lessons/diagramme/en/l18-python-loesung.visustruct":GI,"../../lessons/diagramme/en/l19-java-fehler-loesung.visustruct":HI,"../../lessons/diagramme/en/l19-java-fehler-start.visustruct":VI,"../../lessons/diagramme/en/l19-java-laeuft-nicht-loesung.visustruct":qI,"../../lessons/diagramme/en/l19-java-laeuft-nicht-start.visustruct":QI,"../../lessons/diagramme/en/l19-java-zaehlen-loesung.visustruct":UI,"../../lessons/diagramme/en/l2-ausgabe.visustruct":$I,"../../lessons/diagramme/en/l2-hallo-loesung.visustruct":YI,"../../lessons/diagramme/en/l2-zwei-zeilen-loesung.visustruct":XI,"../../lessons/diagramme/en/l23-java-ergaenzen-loesung.visustruct":KI,"../../lessons/diagramme/en/l23-java-ergaenzen-start.visustruct":e7,"../../lessons/diagramme/en/l23-java-nummern-loesung.visustruct":t7,"../../lessons/diagramme/en/l23-java-nummern-start.visustruct":n7,"../../lessons/diagramme/en/l24-java-fuchs-loesung.visustruct":i7,"../../lessons/diagramme/en/l24-java-fuchs-start.visustruct":a7,"../../lessons/diagramme/en/l24-java-laengster-loesung.visustruct":s7,"../../lessons/diagramme/en/l24-java-laengster-start.visustruct":r7,"../../lessons/diagramme/en/l25-java-beste-loesung.visustruct":o7,"../../lessons/diagramme/en/l25-java-beste-start.visustruct":l7,"../../lessons/diagramme/en/l25-java-schnitt-loesung.visustruct":u7,"../../lessons/diagramme/en/l25-java-schnitt-start.visustruct":m7,"../../lessons/diagramme/en/l26-java-namen-loesung.visustruct":c7,"../../lessons/diagramme/en/l26-java-namen-start.visustruct":d7,"../../lessons/diagramme/en/l26-java-schreiben-loesung.visustruct":h7,"../../lessons/diagramme/en/l26-java-schreiben-start.visustruct":g7,"../../lessons/diagramme/en/l27-java-json-loesung.visustruct":p7,"../../lessons/diagramme/en/l27-java-json-start.visustruct":f7,"../../lessons/diagramme/en/l27-java-saetze-loesung.visustruct":x7,"../../lessons/diagramme/en/l27-java-saetze-start.visustruct":b7,"../../lessons/diagramme/en/sim-kino-loesung.visustruct":v7,"../../lessons/diagramme/en/sim-kino-start.visustruct":y7,"../../lessons/diagramme/en/sim-tausch-loesung.visustruct":w7,"../../lessons/diagramme/en/sim-tausch-start.visustruct":z7,"../../lessons/diagramme/en/sim-tausch.visustruct":I7,"../../lessons/diagramme/en/ss-absteigend-loesung.visustruct":k7,"../../lessons/diagramme/en/ss-absteigend-start.visustruct":S7,"../../lessons/diagramme/en/ss-binaere-suche.visustruct":T7,"../../lessons/diagramme/en/ss-bubblesort.visustruct":_7,"../../lessons/diagramme/en/ss-karte-suchen-loesung.visustruct":j7,"../../lessons/diagramme/en/ss-lineare-suche.visustruct":C7,"../../lessons/diagramme/en/uebergabe-bonus-loesung.visustruct":A7,"../../lessons/diagramme/en/uebergabe-bonus-start.visustruct":P7,"../../lessons/diagramme/en/uebergabe-bonus-unterprogramm-loesung.visustruct":O7,"../../lessons/diagramme/en/uebergabe-haupt.visustruct":D7,"../../lessons/diagramme/en/uebergabe-leeren.visustruct":M7,"../../lessons/diagramme/en/uebergabe-verdopple.visustruct":B7,"../../lessons/diagramme/en/vb-abstand-anzeigen-loesung.visustruct":Z7,"../../lessons/diagramme/en/vb-abstand-halten-loesung.visustruct":L7,"../../lessons/diagramme/en/vb-alarmanlage-loesung.visustruct":W7,"../../lessons/diagramme/en/vb-ampel-loesung.visustruct":E7,"../../lessons/diagramme/en/vb-ausgang-loesung.visustruct":N7,"../../lessons/diagramme/en/vb-begruessung-loesung.visustruct":F7,"../../lessons/diagramme/en/vb-binaer-zaehlen-loesung.visustruct":J7,"../../lessons/diagramme/en/vb-bis-rot-loesung.visustruct":R7,"../../lessons/diagramme/en/vb-bis-wand-loesung.visustruct":G7,"../../lessons/diagramme/en/vb-bis-ziel-loesung.visustruct":H7,"../../lessons/diagramme/en/vb-buchstaben-loesung.visustruct":V7,"../../lessons/diagramme/en/vb-drei-lichter-loesung.visustruct":q7,"../../lessons/diagramme/en/vb-dreieck-loesung.visustruct":Q7,"../../lessons/diagramme/en/vb-einparken-loesung.visustruct":U7,"../../lessons/diagramme/en/vb-farben-loesung.visustruct":$7,"../../lessons/diagramme/en/vb-farbweiche-loesung.visustruct":Y7,"../../lessons/diagramme/en/vb-gas-bis-wand-loesung.visustruct":X7,"../../lessons/diagramme/en/vb-gerade-loesung.visustruct":K7,"../../lessons/diagramme/en/vb-hindernis-loesung.visustruct":ek,"../../lessons/diagramme/en/vb-java-akku-loesung.visustruct":tk,"../../lessons/diagramme/en/vb-java-blau-gruen-loesung.visustruct":nk,"../../lessons/diagramme/en/vb-java-blinken-loesung.visustruct":ik,"../../lessons/diagramme/en/vb-java-countdown-loesung.visustruct":ak,"../../lessons/diagramme/en/vb-java-hoeher-loesung.visustruct":sk,"../../lessons/diagramme/en/vb-java-joystick-loesung.visustruct":rk,"../../lessons/diagramme/en/vb-java-laermampel-loesung.visustruct":ok,"../../lessons/diagramme/en/vb-java-lauflicht-loesung.visustruct":lk,"../../lessons/diagramme/en/vb-java-linienfolger-loesung.visustruct":uk,"../../lessons/diagramme/en/vb-java-nachtlicht-ton-loesung.visustruct":mk,"../../lessons/diagramme/en/vb-java-rand-loesung.visustruct":ck,"../../lessons/diagramme/en/vb-java-rechteck-loesung.visustruct":dk,"../../lessons/diagramme/en/vb-java-textlaenge-loesung.visustruct":hk,"../../lessons/diagramme/en/vb-java-wand-piep-loesung.visustruct":gk,"../../lessons/diagramme/en/vb-java-wasserwaage-loesung.visustruct":pk,"../../lessons/diagramme/en/vb-klatschen-loesung.visustruct":fk,"../../lessons/diagramme/en/vb-knight-rider-loesung.visustruct":xk,"../../lessons/diagramme/en/vb-labyrinth-loesung.visustruct":bk,"../../lessons/diagramme/en/vb-linienfolger-stopp-loesung.visustruct":vk,"../../lessons/diagramme/en/vb-linienmuster-loesung.visustruct":yk,"../../lessons/diagramme/en/vb-melodie-loesung.visustruct":wk,"../../lessons/diagramme/en/vb-morsen-loesung.visustruct":zk,"../../lessons/diagramme/en/vb-nachtlicht-loesung.visustruct":Ik,"../../lessons/diagramme/en/vb-nachtwaechter-loesung.visustruct":kk,"../../lessons/diagramme/en/vb-ohne-noten-loesung.visustruct":Sk,"../../lessons/diagramme/en/vb-ohne-quadratzahl-loesung.visustruct":Tk,"../../lessons/diagramme/en/vb-ohne-quadratzahl-unterprogramm-loesung.visustruct":_k,"../../lessons/diagramme/en/vb-ohne-rueckwaerts-loesung.visustruct":jk,"../../lessons/diagramme/en/vb-ohne-strecke-loesung.visustruct":Ck,"../../lessons/diagramme/en/vb-ohne-summe-loesung.visustruct":Ak,"../../lessons/diagramme/en/vb-quadrat-loesung.visustruct":Pk,"../../lessons/diagramme/en/vb-quadrat-methode-loesung.visustruct":Ok,"../../lessons/diagramme/en/vb-quadrat-schleife-loesung.visustruct":Dk,"../../lessons/diagramme/en/vb-quadrat-unterprogramm-loesung.visustruct":Mk,"../../lessons/diagramme/en/vb-quadrat-verschachtelt-loesung.visustruct":Bk,"../../lessons/diagramme/en/vb-rand-loesung.visustruct":Zk,"../../lessons/diagramme/en/vb-schraeglage-loesung.visustruct":Lk,"../../lessons/diagramme/en/vb-slalom-loesung.visustruct":Wk,"../../lessons/diagramme/en/vb-spirale-loesung.visustruct":Ek,"../../lessons/diagramme/en/vb-start-a-loesung.visustruct":Nk,"../../lessons/diagramme/en/vb-tonleiter-loesung.visustruct":Fk,"../../lessons/diagramme/en/vb-treppe-loesung.visustruct":Jk,"../../lessons/diagramme/en/vb-tunnel-loesung.visustruct":Rk,"../../lessons/diagramme/en/vb-variable-seite-loesung.visustruct":Gk,"../../lessons/diagramme/en/vb-vier-quadrate-loesung.visustruct":Hk,"../../lessons/diagramme/en/vb-wald-loesung.visustruct":Vk,"../../lessons/diagramme/en/vb-wand-vorn-loesung.visustruct":qk,"../../lessons/diagramme/en/vb-zwei-sekunden-loesung.visustruct":Qk,"../../lessons/diagramme/en/zk-initialen-loesung.visustruct":Uk,"../../lessons/diagramme/en/zk-mehr.visustruct":$k,"../../lessons/diagramme/en/zk-rueckwaerts-loesung.visustruct":Yk,"../../lessons/diagramme/en/zk-split.visustruct":Xk,"../../lessons/diagramme/en/zk-woerter-loesung.visustruct":Kk,"../../lessons/diagramme/en/zk-zaehlen.visustruct":e8,"../../lessons/diagramme/en/zk-zeichen.visustruct":t8,"../../lessons/diagramme/kino-einmaleins-loesung.visustruct":n8,"../../lessons/diagramme/kino-frei-loesung.visustruct":i8,"../../lessons/diagramme/kino-frei-start.visustruct":a8,"../../lessons/diagramme/kino-karte-loesung.visustruct":s8,"../../lessons/diagramme/kino-karte-start.visustruct":r8,"../../lessons/diagramme/kino-saalplan.visustruct":o8,"../../lessons/diagramme/kino-verkaufen.visustruct":l8,"../../lessons/diagramme/l04-gross-klein-loesung.visustruct":u8,"../../lessons/diagramme/l04-gross-klein-start.visustruct":m8,"../../lessons/diagramme/l04-java-fehler-loesung.visustruct":c8,"../../lessons/diagramme/l04-java-fehler-start.visustruct":d8,"../../lessons/diagramme/l04-java-laeuft-nicht-loesung.visustruct":h8,"../../lessons/diagramme/l04-java-laeuft-nicht-start.visustruct":g8,"../../lessons/diagramme/l04-java-steckbrief-loesung.visustruct":p8,"../../lessons/diagramme/l04-rechnen.visustruct":f8,"../../lessons/diagramme/l04-reihenfolge-loesung.visustruct":x8,"../../lessons/diagramme/l04-reihenfolge-start.visustruct":b8,"../../lessons/diagramme/l04-tauschen-loesung.visustruct":v8,"../../lessons/diagramme/l04-tauschen-start.visustruct":y8,"../../lessons/diagramme/l04-tauschen.visustruct":w8,"../../lessons/diagramme/l05-datentypen.visustruct":z8,"../../lessons/diagramme/l05-division.visustruct":I8,"../../lessons/diagramme/l05-einkauf-loesung.visustruct":k8,"../../lessons/diagramme/l05-java-fehler-loesung.visustruct":S8,"../../lessons/diagramme/l05-java-fehler-start.visustruct":T8,"../../lessons/diagramme/l05-java-kino-loesung.visustruct":_8,"../../lessons/diagramme/l05-java-laeuft-nicht-loesung.visustruct":j8,"../../lessons/diagramme/l05-java-laeuft-nicht-start.visustruct":C8,"../../lessons/diagramme/l05-rechteck-loesung.visustruct":A8,"../../lessons/diagramme/l05-sekunden-loesung.visustruct":P8,"../../lessons/diagramme/l05-sekunden-start.visustruct":O8,"../../lessons/diagramme/l05-sequenz.visustruct":D8,"../../lessons/diagramme/l06-begruessung-loesung.visustruct":M8,"../../lessons/diagramme/l06-eva.visustruct":B8,"../../lessons/diagramme/l06-java-fehler-loesung.visustruct":Z8,"../../lessons/diagramme/l06-java-fehler-start.visustruct":L8,"../../lessons/diagramme/l06-java-laeuft-nicht-loesung.visustruct":W8,"../../lessons/diagramme/l06-java-laeuft-nicht-start.visustruct":E8,"../../lessons/diagramme/l06-java-tage-loesung.visustruct":N8,"../../lessons/diagramme/l06-mittelwert-loesung.visustruct":F8,"../../lessons/diagramme/l06-rechner-loesung.visustruct":J8,"../../lessons/diagramme/l07-alter-pruefen.visustruct":R8,"../../lessons/diagramme/l07-betrag-loesung.visustruct":G8,"../../lessons/diagramme/l07-gerade-loesung.visustruct":H8,"../../lessons/diagramme/l07-java-fehler-loesung.visustruct":V8,"../../lessons/diagramme/l07-java-fehler-start.visustruct":q8,"../../lessons/diagramme/l07-java-laeuft-nicht-loesung.visustruct":Q8,"../../lessons/diagramme/l07-java-laeuft-nicht-start.visustruct":U8,"../../lessons/diagramme/l07-java-pizza-loesung.visustruct":$8,"../../lessons/diagramme/l07-java-pizza-start.visustruct":Y8,"../../lessons/diagramme/l07-maximum-loesung.visustruct":X8,"../../lessons/diagramme/l07-rabatt.visustruct":K8,"../../lessons/diagramme/l08-gueltig-loesung.visustruct":eS,"../../lessons/diagramme/l08-java-bestanden-loesung.visustruct":tS,"../../lessons/diagramme/l08-java-fehler-loesung.visustruct":nS,"../../lessons/diagramme/l08-java-fehler-start.visustruct":iS,"../../lessons/diagramme/l08-java-laeuft-nicht-loesung.visustruct":aS,"../../lessons/diagramme/l08-java-laeuft-nicht-start.visustruct":sS,"../../lessons/diagramme/l08-jugendticket.visustruct":rS,"../../lessons/diagramme/l08-note.visustruct":oS,"../../lessons/diagramme/l08-schaltjahr-loesung.visustruct":lS,"../../lessons/diagramme/l08-wochenende-loesung.visustruct":uS,"../../lessons/diagramme/l09-ampel.visustruct":mS,"../../lessons/diagramme/l09-automat.visustruct":cS,"../../lessons/diagramme/l09-java-fehler-loesung.visustruct":dS,"../../lessons/diagramme/l09-java-fehler-start.visustruct":hS,"../../lessons/diagramme/l09-java-laeuft-nicht-loesung.visustruct":gS,"../../lessons/diagramme/l09-java-laeuft-nicht-start.visustruct":pS,"../../lessons/diagramme/l09-java-schule-loesung.visustruct":fS,"../../lessons/diagramme/l09-note-loesung.visustruct":xS,"../../lessons/diagramme/l09-rechner-loesung.visustruct":bS,"../../lessons/diagramme/l09-verschachtelt.visustruct":vS,"../../lessons/diagramme/l1-grundbausteine.visustruct":yS,"../../lessons/diagramme/l1-sequenz.visustruct":wS,"../../lessons/diagramme/l1-tee.visustruct":zS,"../../lessons/diagramme/l1-verzweigung.visustruct":IS,"../../lessons/diagramme/l1-wiederholung.visustruct":kS,"../../lessons/diagramme/l10-bis-n-loesung.visustruct":SS,"../../lessons/diagramme/l10-countdown.visustruct":TS,"../../lessons/diagramme/l10-endlos.visustruct":_S,"../../lessons/diagramme/l10-fakultaet.visustruct":jS,"../../lessons/diagramme/l10-java-fehler-loesung.visustruct":CS,"../../lessons/diagramme/l10-java-fehler-start.visustruct":AS,"../../lessons/diagramme/l10-java-laeuft-nicht-loesung.visustruct":PS,"../../lessons/diagramme/l10-java-laeuft-nicht-start.visustruct":OS,"../../lessons/diagramme/l10-java-wuerfel-loesung.visustruct":DS,"../../lessons/diagramme/l10-verdoppeln-loesung.visustruct":MS,"../../lessons/diagramme/l11-eingabe-pruefen.visustruct":BS,"../../lessons/diagramme/l11-einmal.visustruct":ZS,"../../lessons/diagramme/l11-java-fehler-loesung.visustruct":LS,"../../lessons/diagramme/l11-java-fehler-start.visustruct":WS,"../../lessons/diagramme/l11-java-gerade-loesung.visustruct":ES,"../../lessons/diagramme/l11-java-laeuft-nicht-loesung.visustruct":NS,"../../lessons/diagramme/l11-java-laeuft-nicht-start.visustruct":FS,"../../lessons/diagramme/l11-note-loesung.visustruct":JS,"../../lessons/diagramme/l11-summe-loesung.visustruct":RS,"../../lessons/diagramme/l12-countdown-loesung.visustruct":GS,"../../lessons/diagramme/l12-einmaleins-loesung.visustruct":HS,"../../lessons/diagramme/l12-eins-bis-fuenf.visustruct":VS,"../../lessons/diagramme/l12-java-fehler-loesung.visustruct":qS,"../../lessons/diagramme/l12-java-fehler-start.visustruct":QS,"../../lessons/diagramme/l12-java-laeuft-nicht-loesung.visustruct":US,"../../lessons/diagramme/l12-java-laeuft-nicht-start.visustruct":$S,"../../lessons/diagramme/l12-java-verdoppeln-loesung.visustruct":YS,"../../lessons/diagramme/l12-summe.visustruct":XS,"../../lessons/diagramme/l13-dreieck.visustruct":KS,"../../lessons/diagramme/l13-gerade-eingaben-loesung.visustruct":eT,"../../lessons/diagramme/l13-gerade-zaehlen.visustruct":tT,"../../lessons/diagramme/l13-java-fehler-loesung.visustruct":nT,"../../lessons/diagramme/l13-java-fehler-start.visustruct":iT,"../../lessons/diagramme/l13-java-laeuft-nicht-loesung.visustruct":aT,"../../lessons/diagramme/l13-java-laeuft-nicht-start.visustruct":sT,"../../lessons/diagramme/l13-java-quadrate-loesung.visustruct":rT,"../../lessons/diagramme/l13-rechteck-loesung.visustruct":oT,"../../lessons/diagramme/l14-array-durchlaufen.visustruct":lT,"../../lessons/diagramme/l14-erster-letzter-loesung.visustruct":uT,"../../lessons/diagramme/l14-java-fehler-loesung.visustruct":mT,"../../lessons/diagramme/l14-java-fehler-start.visustruct":cT,"../../lessons/diagramme/l14-java-laeuft-nicht-loesung.visustruct":dT,"../../lessons/diagramme/l14-java-laeuft-nicht-start.visustruct":hT,"../../lessons/diagramme/l14-java-treppe-loesung.visustruct":gT,"../../lessons/diagramme/l14-namen-eingeben.visustruct":pT,"../../lessons/diagramme/l14-rueckwaerts-loesung.visustruct":fT,"../../lessons/diagramme/l14-summe-max-loesung.visustruct":xT,"../../lessons/diagramme/l14-summe-maximum.visustruct":bT,"../../lessons/diagramme/l15-bis-null-loesung.visustruct":vT,"../../lessons/diagramme/l15-endlos-aussprung.visustruct":yT,"../../lessons/diagramme/l15-flaeche-loesung.visustruct":wT,"../../lessons/diagramme/l15-flaeche-unterprogramm-loesung.visustruct":zT,"../../lessons/diagramme/l15-hauptprogramm.visustruct":IT,"../../lessons/diagramme/l15-java-fehler-loesung.visustruct":kT,"../../lessons/diagramme/l15-java-fehler-start.visustruct":ST,"../../lessons/diagramme/l15-java-laeuft-nicht-loesung.visustruct":TT,"../../lessons/diagramme/l15-java-laeuft-nicht-start.visustruct":_T,"../../lessons/diagramme/l15-java-noten-loesung.visustruct":jT,"../../lessons/diagramme/l15-quadrat-haupt.visustruct":CT,"../../lessons/diagramme/l15-quadrat.visustruct":AT,"../../lessons/diagramme/l15-titel-loesung.visustruct":PT,"../../lessons/diagramme/l15-unterprogramm.visustruct":OT,"../../lessons/diagramme/l15-zeige-summe-haupt.visustruct":DT,"../../lessons/diagramme/l15-zeige-summe.visustruct":MT,"../../lessons/diagramme/l16-countdown-loesung.visustruct":BT,"../../lessons/diagramme/l16-countdown-start.visustruct":ZT,"../../lessons/diagramme/l16-java-fehler-loesung.visustruct":LT,"../../lessons/diagramme/l16-java-fehler-start.visustruct":WT,"../../lessons/diagramme/l16-java-laeuft-nicht-loesung.visustruct":ET,"../../lessons/diagramme/l16-java-laeuft-nicht-start.visustruct":NT,"../../lessons/diagramme/l16-java-punkte-loesung.visustruct":FT,"../../lessons/diagramme/l16-schreibtisch.visustruct":JT,"../../lessons/diagramme/l16-summe-loesung.visustruct":RT,"../../lessons/diagramme/l16-summe-start.visustruct":GT,"../../lessons/diagramme/l17-beispiel.visustruct":HT,"../../lessons/diagramme/l17-fakultaet-loesung.visustruct":VT,"../../lessons/diagramme/l17-java-brief-loesung.visustruct":qT,"../../lessons/diagramme/l17-java-brief-start.visustruct":QT,"../../lessons/diagramme/l17-java-fehler-loesung.visustruct":UT,"../../lessons/diagramme/l17-java-fehler-start.visustruct":$T,"../../lessons/diagramme/l17-java-laeuft-nicht-loesung.visustruct":YT,"../../lessons/diagramme/l17-java-laeuft-nicht-start.visustruct":XT,"../../lessons/diagramme/l17-java-passwort-loesung.visustruct":KT,"../../lessons/diagramme/l17-ticket-loesung.visustruct":e_,"../../lessons/diagramme/l18-beispiel.visustruct":t_,"../../lessons/diagramme/l18-java-fehler-loesung.visustruct":n_,"../../lessons/diagramme/l18-java-fehler-start.visustruct":i_,"../../lessons/diagramme/l18-java-kasse-loesung.visustruct":a_,"../../lessons/diagramme/l18-js-loesung.visustruct":s_,"../../lessons/diagramme/l18-python-loesung.visustruct":r_,"../../lessons/diagramme/l19-java-fehler-loesung.visustruct":o_,"../../lessons/diagramme/l19-java-fehler-start.visustruct":l_,"../../lessons/diagramme/l19-java-laeuft-nicht-loesung.visustruct":u_,"../../lessons/diagramme/l19-java-laeuft-nicht-start.visustruct":m_,"../../lessons/diagramme/l19-java-zaehlen-loesung.visustruct":c_,"../../lessons/diagramme/l2-ausgabe.visustruct":d_,"../../lessons/diagramme/l2-hallo-loesung.visustruct":h_,"../../lessons/diagramme/l2-zwei-zeilen-loesung.visustruct":g_,"../../lessons/diagramme/l20-countdown-loesung.visustruct":p_,"../../lessons/diagramme/l23-java-ergaenzen-loesung.visustruct":f_,"../../lessons/diagramme/l23-java-ergaenzen-start.visustruct":x_,"../../lessons/diagramme/l23-java-nummern-loesung.visustruct":b_,"../../lessons/diagramme/l23-java-nummern-start.visustruct":v_,"../../lessons/diagramme/l24-java-fuchs-loesung.visustruct":y_,"../../lessons/diagramme/l24-java-fuchs-start.visustruct":w_,"../../lessons/diagramme/l24-java-laengster-loesung.visustruct":z_,"../../lessons/diagramme/l24-java-laengster-start.visustruct":I_,"../../lessons/diagramme/l25-java-beste-loesung.visustruct":k_,"../../lessons/diagramme/l25-java-beste-start.visustruct":S_,"../../lessons/diagramme/l25-java-schnitt-loesung.visustruct":T_,"../../lessons/diagramme/l25-java-schnitt-start.visustruct":__,"../../lessons/diagramme/l26-java-namen-loesung.visustruct":j_,"../../lessons/diagramme/l26-java-namen-start.visustruct":C_,"../../lessons/diagramme/l26-java-schreiben-loesung.visustruct":A_,"../../lessons/diagramme/l26-java-schreiben-start.visustruct":P_,"../../lessons/diagramme/l27-java-json-loesung.visustruct":O_,"../../lessons/diagramme/l27-java-json-start.visustruct":D_,"../../lessons/diagramme/l27-java-saetze-loesung.visustruct":M_,"../../lessons/diagramme/l27-java-saetze-start.visustruct":B_,"../../lessons/diagramme/pt/aufgabe-alter-haupt-loesung.visustruct":Z_,"../../lessons/diagramme/pt/aufgabe-alter-unterprogramm-loesung.visustruct":L_,"../../lessons/diagramme/pt/aufgabe-ballwurf-loesung.visustruct":W_,"../../lessons/diagramme/pt/aufgabe-ballwurf-start.visustruct":E_,"../../lessons/diagramme/pt/aufgabe-bestenliste-loesung.visustruct":N_,"../../lessons/diagramme/pt/aufgabe-binaer-loesung.visustruct":F_,"../../lessons/diagramme/pt/aufgabe-caesar-array-loesung.visustruct":J_,"../../lessons/diagramme/pt/aufgabe-caesar-array-start.visustruct":R_,"../../lessons/diagramme/pt/aufgabe-caesar-ascii-loesung.visustruct":G_,"../../lessons/diagramme/pt/aufgabe-caesar-entschluesseln-loesung.visustruct":H_,"../../lessons/diagramme/pt/aufgabe-collatz-loesung.visustruct":V_,"../../lessons/diagramme/pt/aufgabe-durchschnitt-loesung.visustruct":q_,"../../lessons/diagramme/pt/aufgabe-fibonacci-loesung.visustruct":Q_,"../../lessons/diagramme/pt/aufgabe-gerade-loesung.visustruct":U_,"../../lessons/diagramme/pt/aufgabe-mehrwertsteuer-loesung.visustruct":$_,"../../lessons/diagramme/pt/aufgabe-pin-java-loesung.visustruct":Y_,"../../lessons/diagramme/pt/aufgabe-pin-loesung.visustruct":X_,"../../lessons/diagramme/pt/aufgabe-rechner-loesung.visustruct":K_,"../../lessons/diagramme/pt/aufgabe-schiffe-loesung.visustruct":ej,"../../lessons/diagramme/pt/aufgabe-schiffe-start.visustruct":tj,"../../lessons/diagramme/pt/aufgabe-speisekarte-loesung.visustruct":nj,"../../lessons/diagramme/pt/aufgabe-summe-loesung.visustruct":ij,"../../lessons/diagramme/pt/aufgabe-tafeldienst-loesung.visustruct":aj,"../../lessons/diagramme/pt/aufgabe-verdoppeln-loesung.visustruct":sj,"../../lessons/diagramme/pt/aufgabe-verleih-java-loesung.visustruct":rj,"../../lessons/diagramme/pt/aufgabe-verleih-loesung.visustruct":oj,"../../lessons/diagramme/pt/aufgabe-vokabeln-loesung.visustruct":lj,"../../lessons/diagramme/pt/aufgabe-vokabeln-start.visustruct":uj,"../../lessons/diagramme/pt/aufgabe-volljaehrig-loesung.visustruct":mj,"../../lessons/diagramme/pt/dt-buffered.visustruct":cj,"../../lessons/diagramme/pt/dt-csv.visustruct":dj,"../../lessons/diagramme/pt/dt-json.visustruct":hj,"../../lessons/diagramme/pt/dt-lesen.visustruct":gj,"../../lessons/diagramme/pt/kino-einmaleins-loesung.visustruct":pj,"../../lessons/diagramme/pt/kino-frei-loesung.visustruct":fj,"../../lessons/diagramme/pt/kino-frei-start.visustruct":xj,"../../lessons/diagramme/pt/kino-karte-loesung.visustruct":bj,"../../lessons/diagramme/pt/kino-karte-start.visustruct":vj,"../../lessons/diagramme/pt/kino-saalplan.visustruct":yj,"../../lessons/diagramme/pt/kino-verkaufen.visustruct":wj,"../../lessons/diagramme/pt/l04-gross-klein-loesung.visustruct":zj,"../../lessons/diagramme/pt/l04-gross-klein-start.visustruct":Ij,"../../lessons/diagramme/pt/l04-java-fehler-loesung.visustruct":kj,"../../lessons/diagramme/pt/l04-java-fehler-start.visustruct":Sj,"../../lessons/diagramme/pt/l04-java-laeuft-nicht-loesung.visustruct":Tj,"../../lessons/diagramme/pt/l04-java-laeuft-nicht-start.visustruct":_j,"../../lessons/diagramme/pt/l04-java-steckbrief-loesung.visustruct":jj,"../../lessons/diagramme/pt/l04-rechnen.visustruct":Cj,"../../lessons/diagramme/pt/l04-reihenfolge-loesung.visustruct":Aj,"../../lessons/diagramme/pt/l04-reihenfolge-start.visustruct":Pj,"../../lessons/diagramme/pt/l04-tauschen-loesung.visustruct":Oj,"../../lessons/diagramme/pt/l04-tauschen-start.visustruct":Dj,"../../lessons/diagramme/pt/l04-tauschen.visustruct":Mj,"../../lessons/diagramme/pt/l05-datentypen.visustruct":Bj,"../../lessons/diagramme/pt/l05-division.visustruct":Zj,"../../lessons/diagramme/pt/l05-einkauf-loesung.visustruct":Lj,"../../lessons/diagramme/pt/l05-java-fehler-loesung.visustruct":Wj,"../../lessons/diagramme/pt/l05-java-fehler-start.visustruct":Ej,"../../lessons/diagramme/pt/l05-java-kino-loesung.visustruct":Nj,"../../lessons/diagramme/pt/l05-java-laeuft-nicht-loesung.visustruct":Fj,"../../lessons/diagramme/pt/l05-java-laeuft-nicht-start.visustruct":Jj,"../../lessons/diagramme/pt/l05-rechteck-loesung.visustruct":Rj,"../../lessons/diagramme/pt/l05-sekunden-loesung.visustruct":Gj,"../../lessons/diagramme/pt/l05-sekunden-start.visustruct":Hj,"../../lessons/diagramme/pt/l05-sequenz.visustruct":Vj,"../../lessons/diagramme/pt/l06-begruessung-loesung.visustruct":qj,"../../lessons/diagramme/pt/l06-eva.visustruct":Qj,"../../lessons/diagramme/pt/l06-java-fehler-loesung.visustruct":Uj,"../../lessons/diagramme/pt/l06-java-fehler-start.visustruct":$j,"../../lessons/diagramme/pt/l06-java-laeuft-nicht-loesung.visustruct":Yj,"../../lessons/diagramme/pt/l06-java-laeuft-nicht-start.visustruct":Xj,"../../lessons/diagramme/pt/l06-java-tage-loesung.visustruct":Kj,"../../lessons/diagramme/pt/l06-mittelwert-loesung.visustruct":eC,"../../lessons/diagramme/pt/l06-rechner-loesung.visustruct":tC,"../../lessons/diagramme/pt/l07-alter-pruefen.visustruct":nC,"../../lessons/diagramme/pt/l07-betrag-loesung.visustruct":iC,"../../lessons/diagramme/pt/l07-gerade-loesung.visustruct":aC,"../../lessons/diagramme/pt/l07-java-fehler-loesung.visustruct":sC,"../../lessons/diagramme/pt/l07-java-fehler-start.visustruct":rC,"../../lessons/diagramme/pt/l07-java-laeuft-nicht-loesung.visustruct":oC,"../../lessons/diagramme/pt/l07-java-laeuft-nicht-start.visustruct":lC,"../../lessons/diagramme/pt/l07-java-pizza-loesung.visustruct":uC,"../../lessons/diagramme/pt/l07-java-pizza-start.visustruct":mC,"../../lessons/diagramme/pt/l07-maximum-loesung.visustruct":cC,"../../lessons/diagramme/pt/l07-rabatt.visustruct":dC,"../../lessons/diagramme/pt/l08-gueltig-loesung.visustruct":hC,"../../lessons/diagramme/pt/l08-java-bestanden-loesung.visustruct":gC,"../../lessons/diagramme/pt/l08-java-fehler-loesung.visustruct":pC,"../../lessons/diagramme/pt/l08-java-fehler-start.visustruct":fC,"../../lessons/diagramme/pt/l08-java-laeuft-nicht-loesung.visustruct":xC,"../../lessons/diagramme/pt/l08-java-laeuft-nicht-start.visustruct":bC,"../../lessons/diagramme/pt/l08-jugendticket.visustruct":vC,"../../lessons/diagramme/pt/l08-note.visustruct":yC,"../../lessons/diagramme/pt/l08-schaltjahr-loesung.visustruct":wC,"../../lessons/diagramme/pt/l08-wochenende-loesung.visustruct":zC,"../../lessons/diagramme/pt/l09-ampel.visustruct":IC,"../../lessons/diagramme/pt/l09-automat.visustruct":kC,"../../lessons/diagramme/pt/l09-java-fehler-loesung.visustruct":SC,"../../lessons/diagramme/pt/l09-java-fehler-start.visustruct":TC,"../../lessons/diagramme/pt/l09-java-laeuft-nicht-loesung.visustruct":_C,"../../lessons/diagramme/pt/l09-java-laeuft-nicht-start.visustruct":jC,"../../lessons/diagramme/pt/l09-java-schule-loesung.visustruct":CC,"../../lessons/diagramme/pt/l09-note-loesung.visustruct":AC,"../../lessons/diagramme/pt/l09-rechner-loesung.visustruct":PC,"../../lessons/diagramme/pt/l09-verschachtelt.visustruct":OC,"../../lessons/diagramme/pt/l1-grundbausteine.visustruct":DC,"../../lessons/diagramme/pt/l1-sequenz.visustruct":MC,"../../lessons/diagramme/pt/l1-tee.visustruct":BC,"../../lessons/diagramme/pt/l1-verzweigung.visustruct":ZC,"../../lessons/diagramme/pt/l1-wiederholung.visustruct":LC,"../../lessons/diagramme/pt/l10-bis-n-loesung.visustruct":WC,"../../lessons/diagramme/pt/l10-countdown.visustruct":EC,"../../lessons/diagramme/pt/l10-endlos.visustruct":NC,"../../lessons/diagramme/pt/l10-fakultaet.visustruct":FC,"../../lessons/diagramme/pt/l10-java-fehler-loesung.visustruct":JC,"../../lessons/diagramme/pt/l10-java-fehler-start.visustruct":RC,"../../lessons/diagramme/pt/l10-java-laeuft-nicht-loesung.visustruct":GC,"../../lessons/diagramme/pt/l10-java-laeuft-nicht-start.visustruct":HC,"../../lessons/diagramme/pt/l10-java-wuerfel-loesung.visustruct":VC,"../../lessons/diagramme/pt/l10-verdoppeln-loesung.visustruct":qC,"../../lessons/diagramme/pt/l11-eingabe-pruefen.visustruct":QC,"../../lessons/diagramme/pt/l11-einmal.visustruct":UC,"../../lessons/diagramme/pt/l11-java-fehler-loesung.visustruct":$C,"../../lessons/diagramme/pt/l11-java-fehler-start.visustruct":YC,"../../lessons/diagramme/pt/l11-java-gerade-loesung.visustruct":XC,"../../lessons/diagramme/pt/l11-java-laeuft-nicht-loesung.visustruct":KC,"../../lessons/diagramme/pt/l11-java-laeuft-nicht-start.visustruct":eA,"../../lessons/diagramme/pt/l11-note-loesung.visustruct":tA,"../../lessons/diagramme/pt/l11-summe-loesung.visustruct":nA,"../../lessons/diagramme/pt/l12-countdown-loesung.visustruct":iA,"../../lessons/diagramme/pt/l12-einmaleins-loesung.visustruct":aA,"../../lessons/diagramme/pt/l12-eins-bis-fuenf.visustruct":sA,"../../lessons/diagramme/pt/l12-java-fehler-loesung.visustruct":rA,"../../lessons/diagramme/pt/l12-java-fehler-start.visustruct":oA,"../../lessons/diagramme/pt/l12-java-laeuft-nicht-loesung.visustruct":lA,"../../lessons/diagramme/pt/l12-java-laeuft-nicht-start.visustruct":uA,"../../lessons/diagramme/pt/l12-java-verdoppeln-loesung.visustruct":mA,"../../lessons/diagramme/pt/l12-summe.visustruct":cA,"../../lessons/diagramme/pt/l13-dreieck.visustruct":dA,"../../lessons/diagramme/pt/l13-gerade-eingaben-loesung.visustruct":hA,"../../lessons/diagramme/pt/l13-gerade-zaehlen.visustruct":gA,"../../lessons/diagramme/pt/l13-java-fehler-loesung.visustruct":pA,"../../lessons/diagramme/pt/l13-java-fehler-start.visustruct":fA,"../../lessons/diagramme/pt/l13-java-laeuft-nicht-loesung.visustruct":xA,"../../lessons/diagramme/pt/l13-java-laeuft-nicht-start.visustruct":bA,"../../lessons/diagramme/pt/l13-java-quadrate-loesung.visustruct":vA,"../../lessons/diagramme/pt/l13-rechteck-loesung.visustruct":yA,"../../lessons/diagramme/pt/l14-array-durchlaufen.visustruct":wA,"../../lessons/diagramme/pt/l14-erster-letzter-loesung.visustruct":zA,"../../lessons/diagramme/pt/l14-java-fehler-loesung.visustruct":IA,"../../lessons/diagramme/pt/l14-java-fehler-start.visustruct":kA,"../../lessons/diagramme/pt/l14-java-laeuft-nicht-loesung.visustruct":SA,"../../lessons/diagramme/pt/l14-java-laeuft-nicht-start.visustruct":TA,"../../lessons/diagramme/pt/l14-java-treppe-loesung.visustruct":_A,"../../lessons/diagramme/pt/l14-namen-eingeben.visustruct":jA,"../../lessons/diagramme/pt/l14-rueckwaerts-loesung.visustruct":CA,"../../lessons/diagramme/pt/l14-summe-max-loesung.visustruct":AA,"../../lessons/diagramme/pt/l14-summe-maximum.visustruct":PA,"../../lessons/diagramme/pt/l15-bis-null-loesung.visustruct":OA,"../../lessons/diagramme/pt/l15-endlos-aussprung.visustruct":DA,"../../lessons/diagramme/pt/l15-flaeche-loesung.visustruct":MA,"../../lessons/diagramme/pt/l15-hauptprogramm.visustruct":BA,"../../lessons/diagramme/pt/l15-java-fehler-loesung.visustruct":ZA,"../../lessons/diagramme/pt/l15-java-fehler-start.visustruct":LA,"../../lessons/diagramme/pt/l15-java-laeuft-nicht-loesung.visustruct":WA,"../../lessons/diagramme/pt/l15-java-laeuft-nicht-start.visustruct":EA,"../../lessons/diagramme/pt/l15-java-noten-loesung.visustruct":NA,"../../lessons/diagramme/pt/l15-quadrat-haupt.visustruct":FA,"../../lessons/diagramme/pt/l15-quadrat.visustruct":JA,"../../lessons/diagramme/pt/l15-titel-loesung.visustruct":RA,"../../lessons/diagramme/pt/l15-unterprogramm.visustruct":GA,"../../lessons/diagramme/pt/l15-zeige-summe-haupt.visustruct":HA,"../../lessons/diagramme/pt/l15-zeige-summe.visustruct":VA,"../../lessons/diagramme/pt/l16-countdown-loesung.visustruct":qA,"../../lessons/diagramme/pt/l16-countdown-start.visustruct":QA,"../../lessons/diagramme/pt/l16-java-fehler-loesung.visustruct":UA,"../../lessons/diagramme/pt/l16-java-fehler-start.visustruct":$A,"../../lessons/diagramme/pt/l16-java-laeuft-nicht-loesung.visustruct":YA,"../../lessons/diagramme/pt/l16-java-laeuft-nicht-start.visustruct":XA,"../../lessons/diagramme/pt/l16-java-punkte-loesung.visustruct":KA,"../../lessons/diagramme/pt/l16-schreibtisch.visustruct":eP,"../../lessons/diagramme/pt/l16-summe-loesung.visustruct":tP,"../../lessons/diagramme/pt/l16-summe-start.visustruct":nP,"../../lessons/diagramme/pt/l17-beispiel.visustruct":iP,"../../lessons/diagramme/pt/l17-fakultaet-loesung.visustruct":aP,"../../lessons/diagramme/pt/l17-java-brief-loesung.visustruct":sP,"../../lessons/diagramme/pt/l17-java-brief-start.visustruct":rP,"../../lessons/diagramme/pt/l17-java-fehler-loesung.visustruct":oP,"../../lessons/diagramme/pt/l17-java-fehler-start.visustruct":lP,"../../lessons/diagramme/pt/l17-java-laeuft-nicht-loesung.visustruct":uP,"../../lessons/diagramme/pt/l17-java-laeuft-nicht-start.visustruct":mP,"../../lessons/diagramme/pt/l17-java-passwort-loesung.visustruct":cP,"../../lessons/diagramme/pt/l17-ticket-loesung.visustruct":dP,"../../lessons/diagramme/pt/l18-beispiel.visustruct":hP,"../../lessons/diagramme/pt/l18-java-fehler-loesung.visustruct":gP,"../../lessons/diagramme/pt/l18-java-fehler-start.visustruct":pP,"../../lessons/diagramme/pt/l18-java-kasse-loesung.visustruct":fP,"../../lessons/diagramme/pt/l18-js-loesung.visustruct":xP,"../../lessons/diagramme/pt/l18-python-loesung.visustruct":bP,"../../lessons/diagramme/pt/l19-java-fehler-loesung.visustruct":vP,"../../lessons/diagramme/pt/l19-java-fehler-start.visustruct":yP,"../../lessons/diagramme/pt/l19-java-laeuft-nicht-loesung.visustruct":wP,"../../lessons/diagramme/pt/l19-java-laeuft-nicht-start.visustruct":zP,"../../lessons/diagramme/pt/l19-java-zaehlen-loesung.visustruct":IP,"../../lessons/diagramme/pt/l2-ausgabe.visustruct":kP,"../../lessons/diagramme/pt/l2-hallo-loesung.visustruct":SP,"../../lessons/diagramme/pt/l2-zwei-zeilen-loesung.visustruct":TP,"../../lessons/diagramme/pt/l23-java-ergaenzen-loesung.visustruct":_P,"../../lessons/diagramme/pt/l23-java-ergaenzen-start.visustruct":jP,"../../lessons/diagramme/pt/l23-java-nummern-loesung.visustruct":CP,"../../lessons/diagramme/pt/l23-java-nummern-start.visustruct":AP,"../../lessons/diagramme/pt/l24-java-fuchs-loesung.visustruct":PP,"../../lessons/diagramme/pt/l24-java-fuchs-start.visustruct":OP,"../../lessons/diagramme/pt/l24-java-laengster-loesung.visustruct":DP,"../../lessons/diagramme/pt/l24-java-laengster-start.visustruct":MP,"../../lessons/diagramme/pt/l25-java-beste-loesung.visustruct":BP,"../../lessons/diagramme/pt/l25-java-beste-start.visustruct":ZP,"../../lessons/diagramme/pt/l25-java-schnitt-loesung.visustruct":LP,"../../lessons/diagramme/pt/l25-java-schnitt-start.visustruct":WP,"../../lessons/diagramme/pt/l26-java-namen-loesung.visustruct":EP,"../../lessons/diagramme/pt/l26-java-namen-start.visustruct":NP,"../../lessons/diagramme/pt/l26-java-schreiben-loesung.visustruct":FP,"../../lessons/diagramme/pt/l26-java-schreiben-start.visustruct":JP,"../../lessons/diagramme/pt/l27-java-json-loesung.visustruct":RP,"../../lessons/diagramme/pt/l27-java-json-start.visustruct":GP,"../../lessons/diagramme/pt/l27-java-saetze-loesung.visustruct":HP,"../../lessons/diagramme/pt/l27-java-saetze-start.visustruct":VP,"../../lessons/diagramme/pt/sim-kino-loesung.visustruct":qP,"../../lessons/diagramme/pt/sim-kino-start.visustruct":QP,"../../lessons/diagramme/pt/sim-tausch-loesung.visustruct":UP,"../../lessons/diagramme/pt/sim-tausch-start.visustruct":$P,"../../lessons/diagramme/pt/sim-tausch.visustruct":YP,"../../lessons/diagramme/pt/ss-absteigend-loesung.visustruct":XP,"../../lessons/diagramme/pt/ss-absteigend-start.visustruct":KP,"../../lessons/diagramme/pt/ss-binaere-suche.visustruct":eO,"../../lessons/diagramme/pt/ss-bubblesort.visustruct":tO,"../../lessons/diagramme/pt/ss-karte-suchen-loesung.visustruct":nO,"../../lessons/diagramme/pt/ss-lineare-suche.visustruct":iO,"../../lessons/diagramme/pt/uebergabe-bonus-loesung.visustruct":aO,"../../lessons/diagramme/pt/uebergabe-bonus-start.visustruct":sO,"../../lessons/diagramme/pt/uebergabe-bonus-unterprogramm-loesung.visustruct":rO,"../../lessons/diagramme/pt/uebergabe-haupt.visustruct":oO,"../../lessons/diagramme/pt/uebergabe-leeren.visustruct":lO,"../../lessons/diagramme/pt/uebergabe-verdopple.visustruct":uO,"../../lessons/diagramme/pt/zk-initialen-loesung.visustruct":mO,"../../lessons/diagramme/pt/zk-mehr.visustruct":cO,"../../lessons/diagramme/pt/zk-rueckwaerts-loesung.visustruct":dO,"../../lessons/diagramme/pt/zk-split.visustruct":hO,"../../lessons/diagramme/pt/zk-woerter-loesung.visustruct":gO,"../../lessons/diagramme/pt/zk-zaehlen.visustruct":pO,"../../lessons/diagramme/pt/zk-zeichen.visustruct":fO,"../../lessons/diagramme/sim-kino-loesung.visustruct":xO,"../../lessons/diagramme/sim-kino-start.visustruct":bO,"../../lessons/diagramme/sim-tausch-loesung.visustruct":vO,"../../lessons/diagramme/sim-tausch-start.visustruct":yO,"../../lessons/diagramme/sim-tausch.visustruct":wO,"../../lessons/diagramme/ss-absteigend-loesung.visustruct":zO,"../../lessons/diagramme/ss-absteigend-start.visustruct":IO,"../../lessons/diagramme/ss-binaere-suche.visustruct":kO,"../../lessons/diagramme/ss-bubblesort.visustruct":SO,"../../lessons/diagramme/ss-karte-suchen-loesung.visustruct":TO,"../../lessons/diagramme/ss-lineare-suche.visustruct":_O,"../../lessons/diagramme/uebergabe-bonus-loesung.visustruct":jO,"../../lessons/diagramme/uebergabe-bonus-start.visustruct":CO,"../../lessons/diagramme/uebergabe-bonus-unterprogramm-loesung.visustruct":AO,"../../lessons/diagramme/uebergabe-haupt.visustruct":PO,"../../lessons/diagramme/uebergabe-leeren.visustruct":OO,"../../lessons/diagramme/uebergabe-verdopple.visustruct":DO,"../../lessons/diagramme/vb-abstand-anzeigen-loesung.visustruct":MO,"../../lessons/diagramme/vb-abstand-halten-loesung.visustruct":BO,"../../lessons/diagramme/vb-alarmanlage-loesung.visustruct":ZO,"../../lessons/diagramme/vb-ampel-loesung.visustruct":LO,"../../lessons/diagramme/vb-ausgang-loesung.visustruct":WO,"../../lessons/diagramme/vb-begruessung-loesung.visustruct":EO,"../../lessons/diagramme/vb-binaer-zaehlen-loesung.visustruct":NO,"../../lessons/diagramme/vb-bis-rot-loesung.visustruct":FO,"../../lessons/diagramme/vb-bis-wand-loesung.visustruct":JO,"../../lessons/diagramme/vb-bis-ziel-loesung.visustruct":RO,"../../lessons/diagramme/vb-buchstaben-loesung.visustruct":GO,"../../lessons/diagramme/vb-drei-lichter-loesung.visustruct":HO,"../../lessons/diagramme/vb-dreieck-loesung.visustruct":VO,"../../lessons/diagramme/vb-einparken-loesung.visustruct":qO,"../../lessons/diagramme/vb-farben-loesung.visustruct":QO,"../../lessons/diagramme/vb-farbweiche-loesung.visustruct":UO,"../../lessons/diagramme/vb-gas-bis-wand-loesung.visustruct":$O,"../../lessons/diagramme/vb-gerade-loesung.visustruct":YO,"../../lessons/diagramme/vb-hindernis-loesung.visustruct":XO,"../../lessons/diagramme/vb-java-akku-loesung.visustruct":KO,"../../lessons/diagramme/vb-java-blau-gruen-loesung.visustruct":eD,"../../lessons/diagramme/vb-java-blinken-loesung.visustruct":tD,"../../lessons/diagramme/vb-java-countdown-loesung.visustruct":nD,"../../lessons/diagramme/vb-java-hoeher-loesung.visustruct":iD,"../../lessons/diagramme/vb-java-joystick-loesung.visustruct":aD,"../../lessons/diagramme/vb-java-laermampel-loesung.visustruct":sD,"../../lessons/diagramme/vb-java-lauflicht-loesung.visustruct":rD,"../../lessons/diagramme/vb-java-linienfolger-loesung.visustruct":oD,"../../lessons/diagramme/vb-java-nachtlicht-ton-loesung.visustruct":lD,"../../lessons/diagramme/vb-java-rand-loesung.visustruct":uD,"../../lessons/diagramme/vb-java-rechteck-loesung.visustruct":mD,"../../lessons/diagramme/vb-java-textlaenge-loesung.visustruct":cD,"../../lessons/diagramme/vb-java-wand-piep-loesung.visustruct":dD,"../../lessons/diagramme/vb-java-wasserwaage-loesung.visustruct":hD,"../../lessons/diagramme/vb-klatschen-loesung.visustruct":gD,"../../lessons/diagramme/vb-knight-rider-loesung.visustruct":pD,"../../lessons/diagramme/vb-labyrinth-loesung.visustruct":fD,"../../lessons/diagramme/vb-linienfolger-stopp-loesung.visustruct":xD,"../../lessons/diagramme/vb-linienmuster-loesung.visustruct":bD,"../../lessons/diagramme/vb-melodie-loesung.visustruct":vD,"../../lessons/diagramme/vb-morsen-loesung.visustruct":yD,"../../lessons/diagramme/vb-nachtlicht-loesung.visustruct":wD,"../../lessons/diagramme/vb-nachtwaechter-loesung.visustruct":zD,"../../lessons/diagramme/vb-ohne-noten-loesung.visustruct":ID,"../../lessons/diagramme/vb-ohne-quadratzahl-loesung.visustruct":kD,"../../lessons/diagramme/vb-ohne-quadratzahl-unterprogramm-loesung.visustruct":SD,"../../lessons/diagramme/vb-ohne-rueckwaerts-loesung.visustruct":TD,"../../lessons/diagramme/vb-ohne-strecke-loesung.visustruct":_D,"../../lessons/diagramme/vb-ohne-summe-loesung.visustruct":jD,"../../lessons/diagramme/vb-quadrat-loesung.visustruct":CD,"../../lessons/diagramme/vb-quadrat-methode-loesung.visustruct":AD,"../../lessons/diagramme/vb-quadrat-schleife-loesung.visustruct":PD,"../../lessons/diagramme/vb-quadrat-unterprogramm-loesung.visustruct":OD,"../../lessons/diagramme/vb-quadrat-verschachtelt-loesung.visustruct":DD,"../../lessons/diagramme/vb-rand-loesung.visustruct":MD,"../../lessons/diagramme/vb-schraeglage-loesung.visustruct":BD,"../../lessons/diagramme/vb-slalom-loesung.visustruct":ZD,"../../lessons/diagramme/vb-spirale-loesung.visustruct":LD,"../../lessons/diagramme/vb-start-a-loesung.visustruct":WD,"../../lessons/diagramme/vb-tonleiter-loesung.visustruct":ED,"../../lessons/diagramme/vb-treppe-loesung.visustruct":ND,"../../lessons/diagramme/vb-tunnel-loesung.visustruct":FD,"../../lessons/diagramme/vb-variable-seite-loesung.visustruct":JD,"../../lessons/diagramme/vb-vier-quadrate-loesung.visustruct":RD,"../../lessons/diagramme/vb-wald-loesung.visustruct":GD,"../../lessons/diagramme/vb-wand-vorn-loesung.visustruct":HD,"../../lessons/diagramme/vb-zwei-sekunden-loesung.visustruct":VD,"../../lessons/diagramme/zk-initialen-loesung.visustruct":qD,"../../lessons/diagramme/zk-mehr.visustruct":QD,"../../lessons/diagramme/zk-rueckwaerts-loesung.visustruct":UD,"../../lessons/diagramme/zk-split.visustruct":$D,"../../lessons/diagramme/zk-woerter-loesung.visustruct":YD,"../../lessons/diagramme/zk-zaehlen.visustruct":XD,"../../lessons/diagramme/zk-zeichen.visustruct":KD}),qZ=Object.assign({"../../lessons/welten/ausgang-1.txt":eM,"../../lessons/welten/ausgang-2.txt":tM,"../../lessons/welten/ecke.txt":nM,"../../lessons/welten/farbe-1.txt":iM,"../../lessons/welten/farbe-2.txt":aM,"../../lessons/welten/farbe-3.txt":sM,"../../lessons/welten/farbe-4.txt":rM,"../../lessons/welten/hindernis-1.txt":oM,"../../lessons/welten/hindernis-2.txt":lM,"../../lessons/welten/labyrinth-1.txt":uM,"../../lessons/welten/labyrinth-2.txt":mM,"../../lessons/welten/linie-1.txt":cM,"../../lessons/welten/linie-2.txt":dM,"../../lessons/welten/linie-rot-1.txt":hM,"../../lessons/welten/linie-rot-2.txt":gM,"../../lessons/welten/parken-1.txt":pM,"../../lessons/welten/parken-2.txt":fM,"../../lessons/welten/rand-1.txt":xM,"../../lessons/welten/rand-2.txt":bM,"../../lessons/welten/slalom.txt":vM,"../../lessons/welten/tunnel-1.txt":yM,"../../lessons/welten/tunnel-2.txt":wM,"../../lessons/welten/wald-1.txt":zM,"../../lessons/welten/wald-2.txt":IM,"../../lessons/welten/wand-frei.txt":kM,"../../lessons/welten/wand-kurz.txt":SM,"../../lessons/welten/wand-lang.txt":TM,"../../lessons/welten/wand-mittel.txt":_M,"../../lessons/welten/wand-nah.txt":jM,"../../lessons/welten/zeit-1.txt":CM,"../../lessons/welten/ziel-kurz.txt":AM,"../../lessons/welten/ziel-lang.txt":PM}),QZ=Object.assign({"../../lessons/bilder/ada-lovelace.jpg":OM,"../../lessons/bilder/aufgabe-mehrwertsteuer.svg":DM,"../../lessons/bilder/ben-shneiderman.jpg":MM,"../../lessons/bilder/caesar-ascii.svg":BM,"../../lessons/bilder/caesar-scheibe.svg":ZM,"../../lessons/bilder/caesar-verschiebung.svg":LM,"../../lessons/bilder/en/aufgabe-mehrwertsteuer.svg":WM,"../../lessons/bilder/en/kino-saal.svg":EM,"../../lessons/bilder/en/kino-schleifen.svg":NM,"../../lessons/bilder/en/l01-pap.svg":FM,"../../lessons/bilder/en/l02-einfuegen.svg":JM,"../../lessons/bilder/en/l03-lochkarte-beschriftet.svg":RM,"../../lessons/bilder/en/l03-lochkarte.svg":GM,"../../lessons/bilder/en/l04-camelcase.svg":HM,"../../lessons/bilder/en/l04-variable.svg":VM,"../../lessons/bilder/en/l04-zuweisung.svg":qM,"../../lessons/bilder/en/l05-tauschen.svg":QM,"../../lessons/bilder/en/l08-zahlenstrahl.svg":UM,"../../lessons/bilder/en/l10-kopfgesteuert.svg":$M,"../../lessons/bilder/en/l11-vergleich.svg":YM,"../../lessons/bilder/en/l12-for-ablauf.svg":XM,"../../lessons/bilder/en/l14-array.svg":KM,"../../lessons/bilder/en/l20-cpp.svg":eB,"../../lessons/bilder/en/l20-jvm.svg":tB,"../../lessons/bilder/en/mvc-klick.svg":nB,"../../lessons/bilder/en/ss-binaere-suche.svg":iB,"../../lessons/bilder/en/ss-bubblesort.svg":aB,"../../lessons/bilder/en/ss-lineare-suche.svg":sB,"../../lessons/bilder/en/ss-vergleiche.svg":rB,"../../lessons/bilder/en/uebergabe.svg":oB,"../../lessons/bilder/en/zk-zeichen.svg":lB,"../../lessons/bilder/grace-hopper.jpg":uB,"../../lessons/bilder/hedy-lamarr.jpg":mB,"../../lessons/bilder/ike-nassi.jpg":cB,"../../lessons/bilder/katherine-johnson.jpg":dB,"../../lessons/bilder/kino-saal.svg":hB,"../../lessons/bilder/kino-schleifen.svg":gB,"../../lessons/bilder/l01-pap.svg":pB,"../../lessons/bilder/l02-einfuegen.svg":fB,"../../lessons/bilder/l03-lochkarte-beschriftet.svg":xB,"../../lessons/bilder/l03-lochkarte.svg":bB,"../../lessons/bilder/l03-zuse-lochstreifen.svg":vB,"../../lessons/bilder/l04-camelcase.svg":yB,"../../lessons/bilder/l04-variable.svg":wB,"../../lessons/bilder/l04-zuweisung.svg":zB,"../../lessons/bilder/l05-tauschen.svg":IB,"../../lessons/bilder/l08-zahlenstrahl.svg":kB,"../../lessons/bilder/l09-wahrheitstabelle.svg":SB,"../../lessons/bilder/l10-kopfgesteuert.svg":TB,"../../lessons/bilder/l11-vergleich.svg":_B,"../../lessons/bilder/l12-for-ablauf.svg":jB,"../../lessons/bilder/l14-array.svg":CB,"../../lessons/bilder/l20-cpp.svg":AB,"../../lessons/bilder/l20-jvm.svg":PB,"../../lessons/bilder/margaret-hamilton.jpg":OB,"../../lessons/bilder/mvc-klick.svg":DB,"../../lessons/bilder/pt/aufgabe-mehrwertsteuer.svg":MB,"../../lessons/bilder/pt/kino-saal.svg":BB,"../../lessons/bilder/pt/kino-schleifen.svg":ZB,"../../lessons/bilder/pt/l01-pap.svg":LB,"../../lessons/bilder/pt/l02-einfuegen.svg":WB,"../../lessons/bilder/pt/l03-lochkarte-beschriftet.svg":EB,"../../lessons/bilder/pt/l03-lochkarte.svg":NB,"../../lessons/bilder/pt/l04-camelcase.svg":FB,"../../lessons/bilder/pt/l04-variable.svg":JB,"../../lessons/bilder/pt/l04-zuweisung.svg":RB,"../../lessons/bilder/pt/l05-tauschen.svg":GB,"../../lessons/bilder/pt/l08-zahlenstrahl.svg":HB,"../../lessons/bilder/pt/l10-kopfgesteuert.svg":VB,"../../lessons/bilder/pt/l11-vergleich.svg":qB,"../../lessons/bilder/pt/l12-for-ablauf.svg":QB,"../../lessons/bilder/pt/l14-array.svg":UB,"../../lessons/bilder/pt/l20-cpp.svg":$B,"../../lessons/bilder/pt/l20-jvm.svg":YB,"../../lessons/bilder/pt/mvc-klick.svg":XB,"../../lessons/bilder/pt/schiffe-versenken.svg":KB,"../../lessons/bilder/pt/ss-binaere-suche.svg":eZ,"../../lessons/bilder/pt/ss-bubblesort.svg":tZ,"../../lessons/bilder/pt/ss-lineare-suche.svg":nZ,"../../lessons/bilder/pt/ss-vergleiche.svg":iZ,"../../lessons/bilder/pt/uebergabe.svg":aZ,"../../lessons/bilder/pt/zk-zeichen.svg":sZ,"../../lessons/bilder/schiffe-versenken.svg":rZ,"../../lessons/bilder/ss-binaere-suche.svg":oZ,"../../lessons/bilder/ss-bubblesort.svg":lZ,"../../lessons/bilder/ss-lineare-suche.svg":uZ,"../../lessons/bilder/ss-vergleiche.svg":mZ,"../../lessons/bilder/uebergabe.svg":cZ,"../../lessons/bilder/zk-zeichen.svg":dZ}),cg=i=>i.replace(/^.*\//,"");function U1(i,e,t){const n=s=>new Map(Object.entries(i).filter(([r])=>{var o;return((o=e.exec(r))==null?void 0:o[1])===s}).map(([r,o])=>[cg(r),o]));return[...new Map([...n("en"),...t==="en"?[]:n(t)])]}function Xu(i){return i==="de"?"de":i==="pt-PT"?"pt":"en"}let S1="en",Ot=[],An=[],Ha="",Va=[],ys="off";function Ku(i){i!==ys&&(ys=i,Ot=[],ws(S1))}function ws(i){var s,r,o;if(A3(i),i===S1&&Ot.length>0)return;S1=i;const e=U1(RZ,/\/lessons\/([^/]+)\/[^/]+\.md$/,i),t=(l,u)=>l.filter(([m])=>/^\d+/.test(m)).map(([m,c])=>FZ(nm(c,u),`${i}/${m}`)).sort((m,c)=>m.number-c.number),n=(l,u,m)=>l.map(([c,d])=>{const h=JZ(nm(d,m),`${i}/${u}${c}`);return m&&h.after!==void 0?{...h,after:m.get(h.after)??h.after}:h}),a=U1(GZ,/\/lessons\/([^/]+)\/aufgaben\/[^/]+\.md$/,i);if(ys==="on"){const l=U1(Yu,/\/lessons\/([^/]+)\/visubot\/[^/]+\.md$/,i),u=UZ(tm(e),tm(l)),m=t(e,u.normal),c=h=>{var g;return((g=[...m].reverse().find(f=>u.normal.get(f.number)({...h,number:u.normal.get(h.number)})),...t(l,u.robot).map(h=>{const g=u.robot.get(h.number);return{...h,number:g,section:c(g),robot:!0}})].sort((h,g)=>h.number-g.number);const d=U1(HZ,/\/lessons\/([^/]+)\/visubot\/aufgaben\/[^/]+\.md$/,i);An=[...n(a,"aufgaben/",u.normal),...n(d,"visubot/aufgaben/",u.robot).map(h=>({...h,robot:!0}))]}else Ot=t(e),An=n(a,"aufgaben/");An.sort((l,u)=>(l.after??0)-(u.after??0)||l.level-u.level||l.title.localeCompare(u.title,i));for(const l of[...Ot.flatMap(u=>u.steps.flatMap(m=>m.blocks)),...An.flatMap(u=>u.blocks)])l.kind==="textFile"&&N3(l.name,l.content);if(Ha=((s=e.find(([l])=>l==="nachschlagen.md"))==null?void 0:s[1])??"",ys!=="off"){const l=(r=U1(Yu,/\/lessons\/([^/]+)\/visubot\/[^/]+\.md$/,i).find(([u])=>u==="nachschlagen.md"))==null?void 0:r[1];l&&(Ha=`${Ha.trimEnd()} +`)){const h=/^##\s+(.*)$/.exec(d);h?(u(),l={title:h[1].trim(),lines:[]}):l?l.lines.push(d):o.push(d)}if(u(),r.length===0)throw new ne(`${e}: Keine Schritte (## Überschrift) gefunden.`);RB(r,e);const m=t.get("titel");if(!m)throw new ne(`${e}: „titel:“ fehlt.`);return{id:a,number:s,title:m,section:t.get("bereich")??"",summary:t.get("kurz")??o.join(" ").trim(),steps:r}}function HB(i,e){const{meta:t,body:n}=lg(i,e),a=t.get("titel");if(!a)throw new ne(`${e}: „titel:“ fehlt.`);const s=t.get("nach");return{id:e.replace(/^.*\//,"").replace(/\.md$/,""),title:a,after:s?Number(s):void 0,level:Number(t.get("stufe")??"1")||1,blocks:mg(n,e)}}function Yu(i,e){const t=i.split(/\s*,\s*/).map(n=>n.trim()).filter(Boolean);for(const n of t)if(!L3(n))throw new ne(`${e}: Unbekanntes Teil „${n}“. Bekannt: ${kh.join(", ")}.`);return t}const VB=Object.assign({"../../lessons/de/01-was-ist-ein-struktogramm.md":_b,"../../lessons/de/02-der-editor.md":Cb,"../../lessons/de/03-speichern-oeffnen-exportieren.md":Ab,"../../lessons/de/04-variablen-und-datentypen.md":Pb,"../../lessons/de/05-sequenz.md":Ob,"../../lessons/de/06-eingabe-und-ausgabe.md":Mb,"../../lessons/de/07-simulation-und-schreibtischtest.md":Zb,"../../lessons/de/08-verzweigung.md":Db,"../../lessons/de/09-bedingungen-verknuepfen.md":Bb,"../../lessons/de/10-fallauswahl.md":Lb,"../../lessons/de/11-while-schleife.md":Wb,"../../lessons/de/12-do-while-schleife.md":Eb,"../../lessons/de/13-for-schleife.md":Nb,"../../lessons/de/14-verschachteln.md":Jb,"../../lessons/de/15-arrays.md":Fb,"../../lessons/de/16-zweidimensionale-arrays.md":Rb,"../../lessons/de/17-zeichenketten.md":Gb,"../../lessons/de/18-aufruf-und-aussprung.md":Hb,"../../lessons/de/19-suchen-und-sortieren.md":Vb,"../../lessons/de/20-java.md":Qb,"../../lessons/de/21-python-und-javascript.md":qb,"../../lessons/de/22-try-und-catch.md":Ub,"../../lessons/de/23-text-einlesen-und-speichern.md":Yb,"../../lessons/de/24-zeile-fuer-zeile.md":$b,"../../lessons/de/25-tabellen-als-csv.md":Xb,"../../lessons/de/26-json.md":Kb,"../../lessons/de/27-formate-im-vergleich.md":e4,"../../lessons/de/28-erstes-fenster.md":t4,"../../lessons/de/29-knopf-im-fenster.md":n4,"../../lessons/de/30-der-knopf-reagiert.md":i4,"../../lessons/de/31-zahl-verdoppeln.md":a4,"../../lessons/de/32-klickzaehler.md":s4,"../../lessons/de/33-ampel.md":r4,"../../lessons/de/34-notenrechner.md":o4,"../../lessons/de/35-taschenrechner.md":l4,"../../lessons/de/36-zahlenraten.md":u4,"../../lessons/de/37-viele-knoepfe-ein-zuhoerer.md":m4,"../../lessons/de/38-innere-klassen.md":c4,"../../lessons/de/39-zwei-reiter.md":d4,"../../lessons/de/40-model-view-controller.md":h4,"../../lessons/de/begriffe.md":g4,"../../lessons/de/nachschlagen.md":p4,"../../lessons/en/01-was-ist-ein-struktogramm.md":f4,"../../lessons/en/02-der-editor.md":x4,"../../lessons/en/03-speichern-oeffnen-exportieren.md":b4,"../../lessons/en/04-variablen-und-datentypen.md":v4,"../../lessons/en/05-sequenz.md":y4,"../../lessons/en/06-eingabe-und-ausgabe.md":w4,"../../lessons/en/07-simulation-und-schreibtischtest.md":z4,"../../lessons/en/08-verzweigung.md":I4,"../../lessons/en/09-bedingungen-verknuepfen.md":k4,"../../lessons/en/10-fallauswahl.md":S4,"../../lessons/en/11-while-schleife.md":T4,"../../lessons/en/12-do-while-schleife.md":j4,"../../lessons/en/13-for-schleife.md":_4,"../../lessons/en/14-verschachteln.md":C4,"../../lessons/en/15-arrays.md":A4,"../../lessons/en/16-zweidimensionale-arrays.md":P4,"../../lessons/en/17-zeichenketten.md":O4,"../../lessons/en/18-aufruf-und-aussprung.md":M4,"../../lessons/en/19-suchen-und-sortieren.md":Z4,"../../lessons/en/20-java.md":D4,"../../lessons/en/21-python-und-javascript.md":B4,"../../lessons/en/22-try-und-catch.md":L4,"../../lessons/en/23-text-einlesen-und-speichern.md":W4,"../../lessons/en/24-zeile-fuer-zeile.md":E4,"../../lessons/en/25-tabellen-als-csv.md":N4,"../../lessons/en/26-json.md":J4,"../../lessons/en/27-formate-im-vergleich.md":F4,"../../lessons/en/28-erstes-fenster.md":R4,"../../lessons/en/29-knopf-im-fenster.md":G4,"../../lessons/en/30-der-knopf-reagiert.md":H4,"../../lessons/en/31-zahl-verdoppeln.md":V4,"../../lessons/en/32-klickzaehler.md":Q4,"../../lessons/en/33-ampel.md":q4,"../../lessons/en/34-notenrechner.md":U4,"../../lessons/en/35-taschenrechner.md":Y4,"../../lessons/en/36-zahlenraten.md":$4,"../../lessons/en/37-viele-knoepfe-ein-zuhoerer.md":X4,"../../lessons/en/38-innere-klassen.md":K4,"../../lessons/en/39-zwei-reiter.md":ev,"../../lessons/en/40-model-view-controller.md":tv,"../../lessons/en/begriffe.md":nv,"../../lessons/en/nachschlagen.md":iv,"../../lessons/pt/01-was-ist-ein-struktogramm.md":av,"../../lessons/pt/02-der-editor.md":sv,"../../lessons/pt/03-speichern-oeffnen-exportieren.md":rv,"../../lessons/pt/04-variablen-und-datentypen.md":ov,"../../lessons/pt/05-sequenz.md":lv,"../../lessons/pt/06-eingabe-und-ausgabe.md":uv,"../../lessons/pt/07-simulation-und-schreibtischtest.md":mv,"../../lessons/pt/08-verzweigung.md":cv,"../../lessons/pt/09-bedingungen-verknuepfen.md":dv,"../../lessons/pt/10-fallauswahl.md":hv,"../../lessons/pt/11-while-schleife.md":gv,"../../lessons/pt/12-do-while-schleife.md":pv,"../../lessons/pt/13-for-schleife.md":fv,"../../lessons/pt/14-verschachteln.md":xv,"../../lessons/pt/15-arrays.md":bv,"../../lessons/pt/16-zweidimensionale-arrays.md":vv,"../../lessons/pt/17-zeichenketten.md":yv,"../../lessons/pt/18-aufruf-und-aussprung.md":wv,"../../lessons/pt/19-suchen-und-sortieren.md":zv,"../../lessons/pt/20-java.md":Iv,"../../lessons/pt/21-python-und-javascript.md":kv,"../../lessons/pt/22-try-und-catch.md":Sv,"../../lessons/pt/23-text-einlesen-und-speichern.md":Tv,"../../lessons/pt/24-zeile-fuer-zeile.md":jv,"../../lessons/pt/25-tabellen-als-csv.md":_v,"../../lessons/pt/26-json.md":Cv,"../../lessons/pt/27-formate-im-vergleich.md":Av,"../../lessons/pt/28-erstes-fenster.md":Pv,"../../lessons/pt/29-knopf-im-fenster.md":Ov,"../../lessons/pt/30-der-knopf-reagiert.md":Mv,"../../lessons/pt/31-zahl-verdoppeln.md":Zv,"../../lessons/pt/32-klickzaehler.md":Dv,"../../lessons/pt/33-ampel.md":Bv,"../../lessons/pt/34-notenrechner.md":Lv,"../../lessons/pt/35-taschenrechner.md":Wv,"../../lessons/pt/36-zahlenraten.md":Ev,"../../lessons/pt/37-viele-knoepfe-ein-zuhoerer.md":Nv,"../../lessons/pt/38-innere-klassen.md":Jv,"../../lessons/pt/39-zwei-reiter.md":Fv,"../../lessons/pt/40-model-view-controller.md":Rv,"../../lessons/pt/begriffe.md":Gv,"../../lessons/pt/nachschlagen.md":Hv}),QB=Object.assign({"../../lessons/de/aufgaben/alter-unterprogramm.md":Vv,"../../lessons/de/aufgaben/ballwurf.md":Qv,"../../lessons/de/aufgaben/bestenliste.md":qv,"../../lessons/de/aufgaben/binaerzahl.md":Uv,"../../lessons/de/aufgaben/caesar.md":Yv,"../../lessons/de/aufgaben/collatz.md":$v,"../../lessons/de/aufgaben/einheitenrechner.md":Xv,"../../lessons/de/aufgaben/fibonacci.md":Kv,"../../lessons/de/aufgaben/gerade-ungerade.md":ey,"../../lessons/de/aufgaben/mehrwertsteuer.md":ty,"../../lessons/de/aufgaben/notendurchschnitt.md":ny,"../../lessons/de/aufgaben/pin-pruefen.md":iy,"../../lessons/de/aufgaben/schiffe-versenken.md":ay,"../../lessons/de/aufgaben/speisekarte.md":sy,"../../lessons/de/aufgaben/summe-bilden.md":ry,"../../lessons/de/aufgaben/tafeldienst.md":oy,"../../lessons/de/aufgaben/taschenrechner.md":ly,"../../lessons/de/aufgaben/verleih-menue.md":uy,"../../lessons/de/aufgaben/vokabeltrainer.md":my,"../../lessons/de/aufgaben/volljaehrig.md":cy,"../../lessons/de/aufgaben/wuerfel-mvc.md":dy,"../../lessons/de/aufgaben/zahl-verdoppeln.md":hy,"../../lessons/en/aufgaben/alter-unterprogramm.md":gy,"../../lessons/en/aufgaben/ballwurf.md":py,"../../lessons/en/aufgaben/bestenliste.md":fy,"../../lessons/en/aufgaben/binaerzahl.md":xy,"../../lessons/en/aufgaben/caesar.md":by,"../../lessons/en/aufgaben/collatz.md":vy,"../../lessons/en/aufgaben/einheitenrechner.md":yy,"../../lessons/en/aufgaben/fibonacci.md":wy,"../../lessons/en/aufgaben/gerade-ungerade.md":zy,"../../lessons/en/aufgaben/mehrwertsteuer.md":Iy,"../../lessons/en/aufgaben/notendurchschnitt.md":ky,"../../lessons/en/aufgaben/pin-pruefen.md":Sy,"../../lessons/en/aufgaben/schiffe-versenken.md":Ty,"../../lessons/en/aufgaben/speisekarte.md":jy,"../../lessons/en/aufgaben/summe-bilden.md":_y,"../../lessons/en/aufgaben/tafeldienst.md":Cy,"../../lessons/en/aufgaben/taschenrechner.md":Ay,"../../lessons/en/aufgaben/verleih-menue.md":Py,"../../lessons/en/aufgaben/vokabeltrainer.md":Oy,"../../lessons/en/aufgaben/volljaehrig.md":My,"../../lessons/en/aufgaben/wuerfel-mvc.md":Zy,"../../lessons/en/aufgaben/zahl-verdoppeln.md":Dy,"../../lessons/pt/aufgaben/alter-unterprogramm.md":By,"../../lessons/pt/aufgaben/ballwurf.md":Ly,"../../lessons/pt/aufgaben/bestenliste.md":Wy,"../../lessons/pt/aufgaben/binaerzahl.md":Ey,"../../lessons/pt/aufgaben/caesar.md":Ny,"../../lessons/pt/aufgaben/collatz.md":Jy,"../../lessons/pt/aufgaben/einheitenrechner.md":Fy,"../../lessons/pt/aufgaben/fibonacci.md":Ry,"../../lessons/pt/aufgaben/gerade-ungerade.md":Gy,"../../lessons/pt/aufgaben/mehrwertsteuer.md":Hy,"../../lessons/pt/aufgaben/notendurchschnitt.md":Vy,"../../lessons/pt/aufgaben/pin-pruefen.md":Qy,"../../lessons/pt/aufgaben/schiffe-versenken.md":qy,"../../lessons/pt/aufgaben/speisekarte.md":Uy,"../../lessons/pt/aufgaben/summe-bilden.md":Yy,"../../lessons/pt/aufgaben/tafeldienst.md":$y,"../../lessons/pt/aufgaben/taschenrechner.md":Xy,"../../lessons/pt/aufgaben/verleih-menue.md":Ky,"../../lessons/pt/aufgaben/vokabeltrainer.md":e9,"../../lessons/pt/aufgaben/volljaehrig.md":t9,"../../lessons/pt/aufgaben/wuerfel-mvc.md":n9,"../../lessons/pt/aufgaben/zahl-verdoppeln.md":i9}),$u=Object.assign({"../../lessons/de/visubot/01-der-mbot2.md":a9,"../../lessons/de/visubot/02-das-quadrat.md":s9,"../../lessons/de/visubot/03-variablen-und-ausgabe.md":r9,"../../lessons/de/visubot/04-sensoren.md":o9,"../../lessons/de/visubot/05-bis-zur-wand.md":l9,"../../lessons/de/visubot/06-abstand.md":u9,"../../lessons/de/visubot/07-linie.md":m9,"../../lessons/de/visubot/08-farben.md":c9,"../../lessons/de/visubot/09-fallauswahl.md":d9,"../../lessons/de/visubot/10-tasten-joystick.md":h9,"../../lessons/de/visubot/11-licht.md":g9,"../../lessons/de/visubot/12-lautstaerke.md":p9,"../../lessons/de/visubot/13-neigung.md":f9,"../../lessons/de/visubot/14-leds.md":x9,"../../lessons/de/visubot/15-einzelne-leds.md":b9,"../../lessons/de/visubot/16-lautsprecher.md":v9,"../../lessons/de/visubot/17-arrays-melodie.md":y9,"../../lessons/de/visubot/18-bildschirm.md":w9,"../../lessons/de/visubot/19-zeichenketten.md":z9,"../../lessons/de/visubot/20-motoren.md":I9,"../../lessons/de/visubot/21-stoppuhr-akku.md":k9,"../../lessons/de/visubot/22-eigene-methoden.md":S9,"../../lessons/de/visubot/nachschlagen.md":T9,"../../lessons/en/visubot/01-der-mbot2.md":j9,"../../lessons/en/visubot/02-das-quadrat.md":_9,"../../lessons/en/visubot/03-variablen-und-ausgabe.md":C9,"../../lessons/en/visubot/04-sensoren.md":A9,"../../lessons/en/visubot/05-bis-zur-wand.md":P9,"../../lessons/en/visubot/06-abstand.md":O9,"../../lessons/en/visubot/07-linie.md":M9,"../../lessons/en/visubot/08-farben.md":Z9,"../../lessons/en/visubot/09-fallauswahl.md":D9,"../../lessons/en/visubot/10-tasten-joystick.md":B9,"../../lessons/en/visubot/11-licht.md":L9,"../../lessons/en/visubot/12-lautstaerke.md":W9,"../../lessons/en/visubot/13-neigung.md":E9,"../../lessons/en/visubot/14-leds.md":N9,"../../lessons/en/visubot/15-einzelne-leds.md":J9,"../../lessons/en/visubot/16-lautsprecher.md":F9,"../../lessons/en/visubot/17-arrays-melodie.md":R9,"../../lessons/en/visubot/18-bildschirm.md":G9,"../../lessons/en/visubot/19-zeichenketten.md":H9,"../../lessons/en/visubot/20-motoren.md":V9,"../../lessons/en/visubot/21-stoppuhr-akku.md":Q9,"../../lessons/en/visubot/22-eigene-methoden.md":q9,"../../lessons/en/visubot/nachschlagen.md":U9}),qB=Object.assign({"../../lessons/de/visubot/aufgaben/alarmanlage.md":Y9,"../../lessons/de/visubot/aufgaben/ausgang.md":$9,"../../lessons/de/visubot/aufgaben/binaer-zaehlen.md":X9,"../../lessons/de/visubot/aufgaben/dreieck.md":K9,"../../lessons/de/visubot/aufgaben/einparken.md":ew,"../../lessons/de/visubot/aufgaben/hindernis.md":tw,"../../lessons/de/visubot/aufgaben/knight-rider.md":nw,"../../lessons/de/visubot/aufgaben/labyrinth.md":iw,"../../lessons/de/visubot/aufgaben/linienfolger-stopp.md":aw,"../../lessons/de/visubot/aufgaben/morsen.md":sw,"../../lessons/de/visubot/aufgaben/nachtwaechter.md":rw,"../../lessons/de/visubot/aufgaben/slalom.md":ow,"../../lessons/de/visubot/aufgaben/spirale.md":lw,"../../lessons/de/visubot/aufgaben/treppe.md":uw,"../../lessons/de/visubot/aufgaben/tunnel.md":mw,"../../lessons/de/visubot/aufgaben/wald.md":cw,"../../lessons/en/visubot/aufgaben/alarmanlage.md":dw,"../../lessons/en/visubot/aufgaben/ausgang.md":hw,"../../lessons/en/visubot/aufgaben/binaer-zaehlen.md":gw,"../../lessons/en/visubot/aufgaben/dreieck.md":pw,"../../lessons/en/visubot/aufgaben/einparken.md":fw,"../../lessons/en/visubot/aufgaben/hindernis.md":xw,"../../lessons/en/visubot/aufgaben/knight-rider.md":bw,"../../lessons/en/visubot/aufgaben/labyrinth.md":vw,"../../lessons/en/visubot/aufgaben/linienfolger-stopp.md":yw,"../../lessons/en/visubot/aufgaben/morsen.md":ww,"../../lessons/en/visubot/aufgaben/nachtwaechter.md":zw,"../../lessons/en/visubot/aufgaben/slalom.md":Iw,"../../lessons/en/visubot/aufgaben/spirale.md":kw,"../../lessons/en/visubot/aufgaben/treppe.md":Sw,"../../lessons/en/visubot/aufgaben/tunnel.md":Tw,"../../lessons/en/visubot/aufgaben/wald.md":jw}),UB=Object.assign({"../../lessons/diagramme/aufgabe-alter-haupt-loesung.visustruct":_w,"../../lessons/diagramme/aufgabe-alter-unterprogramm-loesung.visustruct":Cw,"../../lessons/diagramme/aufgabe-ballwurf-loesung.visustruct":Aw,"../../lessons/diagramme/aufgabe-ballwurf-start.visustruct":Pw,"../../lessons/diagramme/aufgabe-bestenliste-loesung.visustruct":Ow,"../../lessons/diagramme/aufgabe-binaer-loesung.visustruct":Mw,"../../lessons/diagramme/aufgabe-caesar-array-loesung.visustruct":Zw,"../../lessons/diagramme/aufgabe-caesar-array-start.visustruct":Dw,"../../lessons/diagramme/aufgabe-caesar-ascii-loesung.visustruct":Bw,"../../lessons/diagramme/aufgabe-caesar-entschluesseln-loesung.visustruct":Lw,"../../lessons/diagramme/aufgabe-collatz-loesung.visustruct":Ww,"../../lessons/diagramme/aufgabe-durchschnitt-loesung.visustruct":Ew,"../../lessons/diagramme/aufgabe-fibonacci-loesung.visustruct":Nw,"../../lessons/diagramme/aufgabe-gerade-loesung.visustruct":Jw,"../../lessons/diagramme/aufgabe-mehrwertsteuer-loesung.visustruct":Fw,"../../lessons/diagramme/aufgabe-pin-java-loesung.visustruct":Rw,"../../lessons/diagramme/aufgabe-pin-loesung.visustruct":Gw,"../../lessons/diagramme/aufgabe-rechner-loesung.visustruct":Hw,"../../lessons/diagramme/aufgabe-schiffe-loesung.visustruct":Vw,"../../lessons/diagramme/aufgabe-schiffe-start.visustruct":Qw,"../../lessons/diagramme/aufgabe-speisekarte-loesung.visustruct":qw,"../../lessons/diagramme/aufgabe-summe-loesung.visustruct":Uw,"../../lessons/diagramme/aufgabe-tafeldienst-loesung.visustruct":Yw,"../../lessons/diagramme/aufgabe-verdoppeln-loesung.visustruct":$w,"../../lessons/diagramme/aufgabe-verleih-java-loesung.visustruct":Xw,"../../lessons/diagramme/aufgabe-verleih-loesung.visustruct":Kw,"../../lessons/diagramme/aufgabe-vokabeln-loesung.visustruct":e5,"../../lessons/diagramme/aufgabe-vokabeln-start.visustruct":t5,"../../lessons/diagramme/aufgabe-volljaehrig-loesung.visustruct":n5,"../../lessons/diagramme/dt-buffered.visustruct":i5,"../../lessons/diagramme/dt-csv.visustruct":a5,"../../lessons/diagramme/dt-json.visustruct":s5,"../../lessons/diagramme/dt-lesen.visustruct":r5,"../../lessons/diagramme/en/aufgabe-alter-haupt-loesung.visustruct":o5,"../../lessons/diagramme/en/aufgabe-alter-unterprogramm-loesung.visustruct":l5,"../../lessons/diagramme/en/aufgabe-ballwurf-loesung.visustruct":u5,"../../lessons/diagramme/en/aufgabe-ballwurf-start.visustruct":m5,"../../lessons/diagramme/en/aufgabe-bestenliste-loesung.visustruct":c5,"../../lessons/diagramme/en/aufgabe-binaer-loesung.visustruct":d5,"../../lessons/diagramme/en/aufgabe-caesar-array-loesung.visustruct":h5,"../../lessons/diagramme/en/aufgabe-caesar-array-start.visustruct":g5,"../../lessons/diagramme/en/aufgabe-caesar-ascii-loesung.visustruct":p5,"../../lessons/diagramme/en/aufgabe-caesar-entschluesseln-loesung.visustruct":f5,"../../lessons/diagramme/en/aufgabe-collatz-loesung.visustruct":x5,"../../lessons/diagramme/en/aufgabe-durchschnitt-loesung.visustruct":b5,"../../lessons/diagramme/en/aufgabe-fibonacci-loesung.visustruct":v5,"../../lessons/diagramme/en/aufgabe-gerade-loesung.visustruct":y5,"../../lessons/diagramme/en/aufgabe-mehrwertsteuer-loesung.visustruct":w5,"../../lessons/diagramme/en/aufgabe-pin-java-loesung.visustruct":z5,"../../lessons/diagramme/en/aufgabe-pin-loesung.visustruct":I5,"../../lessons/diagramme/en/aufgabe-rechner-loesung.visustruct":k5,"../../lessons/diagramme/en/aufgabe-schiffe-loesung.visustruct":S5,"../../lessons/diagramme/en/aufgabe-schiffe-start.visustruct":T5,"../../lessons/diagramme/en/aufgabe-speisekarte-loesung.visustruct":j5,"../../lessons/diagramme/en/aufgabe-summe-loesung.visustruct":_5,"../../lessons/diagramme/en/aufgabe-tafeldienst-loesung.visustruct":C5,"../../lessons/diagramme/en/aufgabe-verdoppeln-loesung.visustruct":A5,"../../lessons/diagramme/en/aufgabe-verleih-java-loesung.visustruct":P5,"../../lessons/diagramme/en/aufgabe-verleih-loesung.visustruct":O5,"../../lessons/diagramme/en/aufgabe-vokabeln-loesung.visustruct":M5,"../../lessons/diagramme/en/aufgabe-vokabeln-start.visustruct":Z5,"../../lessons/diagramme/en/aufgabe-volljaehrig-loesung.visustruct":D5,"../../lessons/diagramme/en/dt-buffered.visustruct":B5,"../../lessons/diagramme/en/dt-csv.visustruct":L5,"../../lessons/diagramme/en/dt-json.visustruct":W5,"../../lessons/diagramme/en/dt-lesen.visustruct":E5,"../../lessons/diagramme/en/kino-einmaleins-loesung.visustruct":N5,"../../lessons/diagramme/en/kino-frei-loesung.visustruct":J5,"../../lessons/diagramme/en/kino-frei-start.visustruct":F5,"../../lessons/diagramme/en/kino-karte-loesung.visustruct":R5,"../../lessons/diagramme/en/kino-karte-start.visustruct":G5,"../../lessons/diagramme/en/kino-saalplan.visustruct":H5,"../../lessons/diagramme/en/kino-verkaufen.visustruct":V5,"../../lessons/diagramme/en/l04-gross-klein-loesung.visustruct":Q5,"../../lessons/diagramme/en/l04-gross-klein-start.visustruct":q5,"../../lessons/diagramme/en/l04-java-fehler-loesung.visustruct":U5,"../../lessons/diagramme/en/l04-java-fehler-start.visustruct":Y5,"../../lessons/diagramme/en/l04-java-laeuft-nicht-loesung.visustruct":$5,"../../lessons/diagramme/en/l04-java-laeuft-nicht-start.visustruct":X5,"../../lessons/diagramme/en/l04-java-steckbrief-loesung.visustruct":K5,"../../lessons/diagramme/en/l04-rechnen.visustruct":ez,"../../lessons/diagramme/en/l04-reihenfolge-loesung.visustruct":tz,"../../lessons/diagramme/en/l04-reihenfolge-start.visustruct":nz,"../../lessons/diagramme/en/l04-tauschen-loesung.visustruct":iz,"../../lessons/diagramme/en/l04-tauschen-start.visustruct":az,"../../lessons/diagramme/en/l04-tauschen.visustruct":sz,"../../lessons/diagramme/en/l05-datentypen.visustruct":rz,"../../lessons/diagramme/en/l05-division.visustruct":oz,"../../lessons/diagramme/en/l05-einkauf-loesung.visustruct":lz,"../../lessons/diagramme/en/l05-java-fehler-loesung.visustruct":uz,"../../lessons/diagramme/en/l05-java-fehler-start.visustruct":mz,"../../lessons/diagramme/en/l05-java-kino-loesung.visustruct":cz,"../../lessons/diagramme/en/l05-java-laeuft-nicht-loesung.visustruct":dz,"../../lessons/diagramme/en/l05-java-laeuft-nicht-start.visustruct":hz,"../../lessons/diagramme/en/l05-rechteck-loesung.visustruct":gz,"../../lessons/diagramme/en/l05-sekunden-loesung.visustruct":pz,"../../lessons/diagramme/en/l05-sekunden-start.visustruct":fz,"../../lessons/diagramme/en/l05-sequenz.visustruct":xz,"../../lessons/diagramme/en/l06-begruessung-loesung.visustruct":bz,"../../lessons/diagramme/en/l06-eva.visustruct":vz,"../../lessons/diagramme/en/l06-java-fehler-loesung.visustruct":yz,"../../lessons/diagramme/en/l06-java-fehler-start.visustruct":wz,"../../lessons/diagramme/en/l06-java-laeuft-nicht-loesung.visustruct":zz,"../../lessons/diagramme/en/l06-java-laeuft-nicht-start.visustruct":Iz,"../../lessons/diagramme/en/l06-java-tage-loesung.visustruct":kz,"../../lessons/diagramme/en/l06-mittelwert-loesung.visustruct":Sz,"../../lessons/diagramme/en/l06-rechner-loesung.visustruct":Tz,"../../lessons/diagramme/en/l07-alter-pruefen.visustruct":jz,"../../lessons/diagramme/en/l07-betrag-loesung.visustruct":_z,"../../lessons/diagramme/en/l07-gerade-loesung.visustruct":Cz,"../../lessons/diagramme/en/l07-java-fehler-loesung.visustruct":Az,"../../lessons/diagramme/en/l07-java-fehler-start.visustruct":Pz,"../../lessons/diagramme/en/l07-java-laeuft-nicht-loesung.visustruct":Oz,"../../lessons/diagramme/en/l07-java-laeuft-nicht-start.visustruct":Mz,"../../lessons/diagramme/en/l07-java-pizza-loesung.visustruct":Zz,"../../lessons/diagramme/en/l07-java-pizza-start.visustruct":Dz,"../../lessons/diagramme/en/l07-maximum-loesung.visustruct":Bz,"../../lessons/diagramme/en/l07-rabatt.visustruct":Lz,"../../lessons/diagramme/en/l08-gueltig-loesung.visustruct":Wz,"../../lessons/diagramme/en/l08-java-bestanden-loesung.visustruct":Ez,"../../lessons/diagramme/en/l08-java-fehler-loesung.visustruct":Nz,"../../lessons/diagramme/en/l08-java-fehler-start.visustruct":Jz,"../../lessons/diagramme/en/l08-java-laeuft-nicht-loesung.visustruct":Fz,"../../lessons/diagramme/en/l08-java-laeuft-nicht-start.visustruct":Rz,"../../lessons/diagramme/en/l08-jugendticket.visustruct":Gz,"../../lessons/diagramme/en/l08-note.visustruct":Hz,"../../lessons/diagramme/en/l08-schaltjahr-loesung.visustruct":Vz,"../../lessons/diagramme/en/l08-wochenende-loesung.visustruct":Qz,"../../lessons/diagramme/en/l09-ampel.visustruct":qz,"../../lessons/diagramme/en/l09-automat.visustruct":Uz,"../../lessons/diagramme/en/l09-java-fehler-loesung.visustruct":Yz,"../../lessons/diagramme/en/l09-java-fehler-start.visustruct":$z,"../../lessons/diagramme/en/l09-java-laeuft-nicht-loesung.visustruct":Xz,"../../lessons/diagramme/en/l09-java-laeuft-nicht-start.visustruct":Kz,"../../lessons/diagramme/en/l09-java-schule-loesung.visustruct":e6,"../../lessons/diagramme/en/l09-note-loesung.visustruct":t6,"../../lessons/diagramme/en/l09-rechner-loesung.visustruct":n6,"../../lessons/diagramme/en/l09-verschachtelt.visustruct":i6,"../../lessons/diagramme/en/l1-grundbausteine.visustruct":a6,"../../lessons/diagramme/en/l1-sequenz.visustruct":s6,"../../lessons/diagramme/en/l1-tee.visustruct":r6,"../../lessons/diagramme/en/l1-verzweigung.visustruct":o6,"../../lessons/diagramme/en/l1-wiederholung.visustruct":l6,"../../lessons/diagramme/en/l10-bis-n-loesung.visustruct":u6,"../../lessons/diagramme/en/l10-countdown.visustruct":m6,"../../lessons/diagramme/en/l10-endlos.visustruct":c6,"../../lessons/diagramme/en/l10-fakultaet.visustruct":d6,"../../lessons/diagramme/en/l10-java-fehler-loesung.visustruct":h6,"../../lessons/diagramme/en/l10-java-fehler-start.visustruct":g6,"../../lessons/diagramme/en/l10-java-laeuft-nicht-loesung.visustruct":p6,"../../lessons/diagramme/en/l10-java-laeuft-nicht-start.visustruct":f6,"../../lessons/diagramme/en/l10-java-wuerfel-loesung.visustruct":x6,"../../lessons/diagramme/en/l10-verdoppeln-loesung.visustruct":b6,"../../lessons/diagramme/en/l11-eingabe-pruefen.visustruct":v6,"../../lessons/diagramme/en/l11-einmal.visustruct":y6,"../../lessons/diagramme/en/l11-java-fehler-loesung.visustruct":w6,"../../lessons/diagramme/en/l11-java-fehler-start.visustruct":z6,"../../lessons/diagramme/en/l11-java-gerade-loesung.visustruct":I6,"../../lessons/diagramme/en/l11-java-laeuft-nicht-loesung.visustruct":k6,"../../lessons/diagramme/en/l11-java-laeuft-nicht-start.visustruct":S6,"../../lessons/diagramme/en/l11-note-loesung.visustruct":T6,"../../lessons/diagramme/en/l11-summe-loesung.visustruct":j6,"../../lessons/diagramme/en/l12-countdown-loesung.visustruct":_6,"../../lessons/diagramme/en/l12-einmaleins-loesung.visustruct":C6,"../../lessons/diagramme/en/l12-eins-bis-fuenf.visustruct":A6,"../../lessons/diagramme/en/l12-java-fehler-loesung.visustruct":P6,"../../lessons/diagramme/en/l12-java-fehler-start.visustruct":O6,"../../lessons/diagramme/en/l12-java-laeuft-nicht-loesung.visustruct":M6,"../../lessons/diagramme/en/l12-java-laeuft-nicht-start.visustruct":Z6,"../../lessons/diagramme/en/l12-java-verdoppeln-loesung.visustruct":D6,"../../lessons/diagramme/en/l12-summe.visustruct":B6,"../../lessons/diagramme/en/l13-dreieck.visustruct":L6,"../../lessons/diagramme/en/l13-gerade-eingaben-loesung.visustruct":W6,"../../lessons/diagramme/en/l13-gerade-zaehlen.visustruct":E6,"../../lessons/diagramme/en/l13-java-fehler-loesung.visustruct":N6,"../../lessons/diagramme/en/l13-java-fehler-start.visustruct":J6,"../../lessons/diagramme/en/l13-java-laeuft-nicht-loesung.visustruct":F6,"../../lessons/diagramme/en/l13-java-laeuft-nicht-start.visustruct":R6,"../../lessons/diagramme/en/l13-java-quadrate-loesung.visustruct":G6,"../../lessons/diagramme/en/l13-rechteck-loesung.visustruct":H6,"../../lessons/diagramme/en/l14-array-durchlaufen.visustruct":V6,"../../lessons/diagramme/en/l14-erster-letzter-loesung.visustruct":Q6,"../../lessons/diagramme/en/l14-java-fehler-loesung.visustruct":q6,"../../lessons/diagramme/en/l14-java-fehler-start.visustruct":U6,"../../lessons/diagramme/en/l14-java-laeuft-nicht-loesung.visustruct":Y6,"../../lessons/diagramme/en/l14-java-laeuft-nicht-start.visustruct":$6,"../../lessons/diagramme/en/l14-java-treppe-loesung.visustruct":X6,"../../lessons/diagramme/en/l14-namen-eingeben.visustruct":K6,"../../lessons/diagramme/en/l14-rueckwaerts-loesung.visustruct":eI,"../../lessons/diagramme/en/l14-summe-max-loesung.visustruct":tI,"../../lessons/diagramme/en/l14-summe-maximum.visustruct":nI,"../../lessons/diagramme/en/l15-bis-null-loesung.visustruct":iI,"../../lessons/diagramme/en/l15-endlos-aussprung.visustruct":aI,"../../lessons/diagramme/en/l15-flaeche-loesung.visustruct":sI,"../../lessons/diagramme/en/l15-flaeche-unterprogramm-loesung.visustruct":rI,"../../lessons/diagramme/en/l15-hauptprogramm.visustruct":oI,"../../lessons/diagramme/en/l15-java-fehler-loesung.visustruct":lI,"../../lessons/diagramme/en/l15-java-fehler-start.visustruct":uI,"../../lessons/diagramme/en/l15-java-laeuft-nicht-loesung.visustruct":mI,"../../lessons/diagramme/en/l15-java-laeuft-nicht-start.visustruct":cI,"../../lessons/diagramme/en/l15-java-noten-loesung.visustruct":dI,"../../lessons/diagramme/en/l15-quadrat-haupt.visustruct":hI,"../../lessons/diagramme/en/l15-quadrat.visustruct":gI,"../../lessons/diagramme/en/l15-titel-loesung.visustruct":pI,"../../lessons/diagramme/en/l15-unterprogramm.visustruct":fI,"../../lessons/diagramme/en/l15-zeige-summe-haupt.visustruct":xI,"../../lessons/diagramme/en/l15-zeige-summe.visustruct":bI,"../../lessons/diagramme/en/l16-countdown-loesung.visustruct":vI,"../../lessons/diagramme/en/l16-countdown-start.visustruct":yI,"../../lessons/diagramme/en/l16-java-fehler-loesung.visustruct":wI,"../../lessons/diagramme/en/l16-java-fehler-start.visustruct":zI,"../../lessons/diagramme/en/l16-java-laeuft-nicht-loesung.visustruct":II,"../../lessons/diagramme/en/l16-java-laeuft-nicht-start.visustruct":kI,"../../lessons/diagramme/en/l16-java-punkte-loesung.visustruct":SI,"../../lessons/diagramme/en/l16-schreibtisch.visustruct":TI,"../../lessons/diagramme/en/l16-summe-loesung.visustruct":jI,"../../lessons/diagramme/en/l16-summe-start.visustruct":_I,"../../lessons/diagramme/en/l17-beispiel.visustruct":CI,"../../lessons/diagramme/en/l17-fakultaet-loesung.visustruct":AI,"../../lessons/diagramme/en/l17-java-brief-loesung.visustruct":PI,"../../lessons/diagramme/en/l17-java-brief-start.visustruct":OI,"../../lessons/diagramme/en/l17-java-fehler-loesung.visustruct":MI,"../../lessons/diagramme/en/l17-java-fehler-start.visustruct":ZI,"../../lessons/diagramme/en/l17-java-laeuft-nicht-loesung.visustruct":DI,"../../lessons/diagramme/en/l17-java-laeuft-nicht-start.visustruct":BI,"../../lessons/diagramme/en/l17-java-passwort-loesung.visustruct":LI,"../../lessons/diagramme/en/l17-ticket-loesung.visustruct":WI,"../../lessons/diagramme/en/l18-beispiel.visustruct":EI,"../../lessons/diagramme/en/l18-java-fehler-loesung.visustruct":NI,"../../lessons/diagramme/en/l18-java-fehler-start.visustruct":JI,"../../lessons/diagramme/en/l18-java-kasse-loesung.visustruct":FI,"../../lessons/diagramme/en/l18-js-loesung.visustruct":RI,"../../lessons/diagramme/en/l18-python-loesung.visustruct":GI,"../../lessons/diagramme/en/l19-java-fehler-loesung.visustruct":HI,"../../lessons/diagramme/en/l19-java-fehler-start.visustruct":VI,"../../lessons/diagramme/en/l19-java-laeuft-nicht-loesung.visustruct":QI,"../../lessons/diagramme/en/l19-java-laeuft-nicht-start.visustruct":qI,"../../lessons/diagramme/en/l19-java-zaehlen-loesung.visustruct":UI,"../../lessons/diagramme/en/l2-ausgabe.visustruct":YI,"../../lessons/diagramme/en/l2-hallo-loesung.visustruct":$I,"../../lessons/diagramme/en/l2-zwei-zeilen-loesung.visustruct":XI,"../../lessons/diagramme/en/l23-java-ergaenzen-loesung.visustruct":KI,"../../lessons/diagramme/en/l23-java-ergaenzen-start.visustruct":e7,"../../lessons/diagramme/en/l23-java-nummern-loesung.visustruct":t7,"../../lessons/diagramme/en/l23-java-nummern-start.visustruct":n7,"../../lessons/diagramme/en/l24-java-fuchs-loesung.visustruct":i7,"../../lessons/diagramme/en/l24-java-fuchs-start.visustruct":a7,"../../lessons/diagramme/en/l24-java-laengster-loesung.visustruct":s7,"../../lessons/diagramme/en/l24-java-laengster-start.visustruct":r7,"../../lessons/diagramme/en/l25-java-beste-loesung.visustruct":o7,"../../lessons/diagramme/en/l25-java-beste-start.visustruct":l7,"../../lessons/diagramme/en/l25-java-schnitt-loesung.visustruct":u7,"../../lessons/diagramme/en/l25-java-schnitt-start.visustruct":m7,"../../lessons/diagramme/en/l26-java-namen-loesung.visustruct":c7,"../../lessons/diagramme/en/l26-java-namen-start.visustruct":d7,"../../lessons/diagramme/en/l26-java-schreiben-loesung.visustruct":h7,"../../lessons/diagramme/en/l26-java-schreiben-start.visustruct":g7,"../../lessons/diagramme/en/l27-java-json-loesung.visustruct":p7,"../../lessons/diagramme/en/l27-java-json-start.visustruct":f7,"../../lessons/diagramme/en/l27-java-saetze-loesung.visustruct":x7,"../../lessons/diagramme/en/l27-java-saetze-start.visustruct":b7,"../../lessons/diagramme/en/sim-kino-loesung.visustruct":v7,"../../lessons/diagramme/en/sim-kino-start.visustruct":y7,"../../lessons/diagramme/en/sim-tausch-loesung.visustruct":w7,"../../lessons/diagramme/en/sim-tausch-start.visustruct":z7,"../../lessons/diagramme/en/sim-tausch.visustruct":I7,"../../lessons/diagramme/en/ss-absteigend-loesung.visustruct":k7,"../../lessons/diagramme/en/ss-absteigend-start.visustruct":S7,"../../lessons/diagramme/en/ss-binaere-suche.visustruct":T7,"../../lessons/diagramme/en/ss-bubblesort.visustruct":j7,"../../lessons/diagramme/en/ss-karte-suchen-loesung.visustruct":_7,"../../lessons/diagramme/en/ss-lineare-suche.visustruct":C7,"../../lessons/diagramme/en/uebergabe-bonus-loesung.visustruct":A7,"../../lessons/diagramme/en/uebergabe-bonus-start.visustruct":P7,"../../lessons/diagramme/en/uebergabe-bonus-unterprogramm-loesung.visustruct":O7,"../../lessons/diagramme/en/uebergabe-haupt.visustruct":M7,"../../lessons/diagramme/en/uebergabe-leeren.visustruct":Z7,"../../lessons/diagramme/en/uebergabe-verdopple.visustruct":D7,"../../lessons/diagramme/en/vb-abstand-anzeigen-loesung.visustruct":B7,"../../lessons/diagramme/en/vb-abstand-halten-loesung.visustruct":L7,"../../lessons/diagramme/en/vb-alarmanlage-loesung.visustruct":W7,"../../lessons/diagramme/en/vb-ampel-loesung.visustruct":E7,"../../lessons/diagramme/en/vb-ausgang-loesung.visustruct":N7,"../../lessons/diagramme/en/vb-begruessung-loesung.visustruct":J7,"../../lessons/diagramme/en/vb-binaer-zaehlen-loesung.visustruct":F7,"../../lessons/diagramme/en/vb-bis-rot-loesung.visustruct":R7,"../../lessons/diagramme/en/vb-bis-wand-loesung.visustruct":G7,"../../lessons/diagramme/en/vb-bis-ziel-loesung.visustruct":H7,"../../lessons/diagramme/en/vb-buchstaben-loesung.visustruct":V7,"../../lessons/diagramme/en/vb-drei-lichter-loesung.visustruct":Q7,"../../lessons/diagramme/en/vb-dreieck-loesung.visustruct":q7,"../../lessons/diagramme/en/vb-einparken-loesung.visustruct":U7,"../../lessons/diagramme/en/vb-farben-loesung.visustruct":Y7,"../../lessons/diagramme/en/vb-farbweiche-loesung.visustruct":$7,"../../lessons/diagramme/en/vb-gas-bis-wand-loesung.visustruct":X7,"../../lessons/diagramme/en/vb-gerade-loesung.visustruct":K7,"../../lessons/diagramme/en/vb-hindernis-loesung.visustruct":ek,"../../lessons/diagramme/en/vb-java-akku-loesung.visustruct":tk,"../../lessons/diagramme/en/vb-java-blau-gruen-loesung.visustruct":nk,"../../lessons/diagramme/en/vb-java-blinken-loesung.visustruct":ik,"../../lessons/diagramme/en/vb-java-countdown-loesung.visustruct":ak,"../../lessons/diagramme/en/vb-java-hoeher-loesung.visustruct":sk,"../../lessons/diagramme/en/vb-java-joystick-loesung.visustruct":rk,"../../lessons/diagramme/en/vb-java-laermampel-loesung.visustruct":ok,"../../lessons/diagramme/en/vb-java-lauflicht-loesung.visustruct":lk,"../../lessons/diagramme/en/vb-java-linienfolger-loesung.visustruct":uk,"../../lessons/diagramme/en/vb-java-nachtlicht-ton-loesung.visustruct":mk,"../../lessons/diagramme/en/vb-java-rand-loesung.visustruct":ck,"../../lessons/diagramme/en/vb-java-rechteck-loesung.visustruct":dk,"../../lessons/diagramme/en/vb-java-textlaenge-loesung.visustruct":hk,"../../lessons/diagramme/en/vb-java-wand-piep-loesung.visustruct":gk,"../../lessons/diagramme/en/vb-java-wasserwaage-loesung.visustruct":pk,"../../lessons/diagramme/en/vb-klatschen-loesung.visustruct":fk,"../../lessons/diagramme/en/vb-knight-rider-loesung.visustruct":xk,"../../lessons/diagramme/en/vb-labyrinth-loesung.visustruct":bk,"../../lessons/diagramme/en/vb-linienfolger-stopp-loesung.visustruct":vk,"../../lessons/diagramme/en/vb-linienmuster-loesung.visustruct":yk,"../../lessons/diagramme/en/vb-melodie-loesung.visustruct":wk,"../../lessons/diagramme/en/vb-morsen-loesung.visustruct":zk,"../../lessons/diagramme/en/vb-nachtlicht-loesung.visustruct":Ik,"../../lessons/diagramme/en/vb-nachtwaechter-loesung.visustruct":kk,"../../lessons/diagramme/en/vb-ohne-noten-loesung.visustruct":Sk,"../../lessons/diagramme/en/vb-ohne-quadratzahl-loesung.visustruct":Tk,"../../lessons/diagramme/en/vb-ohne-quadratzahl-unterprogramm-loesung.visustruct":jk,"../../lessons/diagramme/en/vb-ohne-rueckwaerts-loesung.visustruct":_k,"../../lessons/diagramme/en/vb-ohne-strecke-loesung.visustruct":Ck,"../../lessons/diagramme/en/vb-ohne-summe-loesung.visustruct":Ak,"../../lessons/diagramme/en/vb-quadrat-loesung.visustruct":Pk,"../../lessons/diagramme/en/vb-quadrat-methode-loesung.visustruct":Ok,"../../lessons/diagramme/en/vb-quadrat-schleife-loesung.visustruct":Mk,"../../lessons/diagramme/en/vb-quadrat-unterprogramm-loesung.visustruct":Zk,"../../lessons/diagramme/en/vb-quadrat-verschachtelt-loesung.visustruct":Dk,"../../lessons/diagramme/en/vb-rand-loesung.visustruct":Bk,"../../lessons/diagramme/en/vb-schraeglage-loesung.visustruct":Lk,"../../lessons/diagramme/en/vb-slalom-loesung.visustruct":Wk,"../../lessons/diagramme/en/vb-spirale-loesung.visustruct":Ek,"../../lessons/diagramme/en/vb-start-a-loesung.visustruct":Nk,"../../lessons/diagramme/en/vb-tonleiter-loesung.visustruct":Jk,"../../lessons/diagramme/en/vb-treppe-loesung.visustruct":Fk,"../../lessons/diagramme/en/vb-tunnel-loesung.visustruct":Rk,"../../lessons/diagramme/en/vb-variable-seite-loesung.visustruct":Gk,"../../lessons/diagramme/en/vb-vier-quadrate-loesung.visustruct":Hk,"../../lessons/diagramme/en/vb-wald-loesung.visustruct":Vk,"../../lessons/diagramme/en/vb-wand-vorn-loesung.visustruct":Qk,"../../lessons/diagramme/en/vb-zwei-sekunden-loesung.visustruct":qk,"../../lessons/diagramme/en/zk-initialen-loesung.visustruct":Uk,"../../lessons/diagramme/en/zk-mehr.visustruct":Yk,"../../lessons/diagramme/en/zk-rueckwaerts-loesung.visustruct":$k,"../../lessons/diagramme/en/zk-split.visustruct":Xk,"../../lessons/diagramme/en/zk-woerter-loesung.visustruct":Kk,"../../lessons/diagramme/en/zk-zaehlen.visustruct":e8,"../../lessons/diagramme/en/zk-zeichen.visustruct":t8,"../../lessons/diagramme/kino-einmaleins-loesung.visustruct":n8,"../../lessons/diagramme/kino-frei-loesung.visustruct":i8,"../../lessons/diagramme/kino-frei-start.visustruct":a8,"../../lessons/diagramme/kino-karte-loesung.visustruct":s8,"../../lessons/diagramme/kino-karte-start.visustruct":r8,"../../lessons/diagramme/kino-saalplan.visustruct":o8,"../../lessons/diagramme/kino-verkaufen.visustruct":l8,"../../lessons/diagramme/l04-gross-klein-loesung.visustruct":u8,"../../lessons/diagramme/l04-gross-klein-start.visustruct":m8,"../../lessons/diagramme/l04-java-fehler-loesung.visustruct":c8,"../../lessons/diagramme/l04-java-fehler-start.visustruct":d8,"../../lessons/diagramme/l04-java-laeuft-nicht-loesung.visustruct":h8,"../../lessons/diagramme/l04-java-laeuft-nicht-start.visustruct":g8,"../../lessons/diagramme/l04-java-steckbrief-loesung.visustruct":p8,"../../lessons/diagramme/l04-rechnen.visustruct":f8,"../../lessons/diagramme/l04-reihenfolge-loesung.visustruct":x8,"../../lessons/diagramme/l04-reihenfolge-start.visustruct":b8,"../../lessons/diagramme/l04-tauschen-loesung.visustruct":v8,"../../lessons/diagramme/l04-tauschen-start.visustruct":y8,"../../lessons/diagramme/l04-tauschen.visustruct":w8,"../../lessons/diagramme/l05-datentypen.visustruct":z8,"../../lessons/diagramme/l05-division.visustruct":I8,"../../lessons/diagramme/l05-einkauf-loesung.visustruct":k8,"../../lessons/diagramme/l05-java-fehler-loesung.visustruct":S8,"../../lessons/diagramme/l05-java-fehler-start.visustruct":T8,"../../lessons/diagramme/l05-java-kino-loesung.visustruct":j8,"../../lessons/diagramme/l05-java-laeuft-nicht-loesung.visustruct":_8,"../../lessons/diagramme/l05-java-laeuft-nicht-start.visustruct":C8,"../../lessons/diagramme/l05-rechteck-loesung.visustruct":A8,"../../lessons/diagramme/l05-sekunden-loesung.visustruct":P8,"../../lessons/diagramme/l05-sekunden-start.visustruct":O8,"../../lessons/diagramme/l05-sequenz.visustruct":M8,"../../lessons/diagramme/l06-begruessung-loesung.visustruct":Z8,"../../lessons/diagramme/l06-eva.visustruct":D8,"../../lessons/diagramme/l06-java-fehler-loesung.visustruct":B8,"../../lessons/diagramme/l06-java-fehler-start.visustruct":L8,"../../lessons/diagramme/l06-java-laeuft-nicht-loesung.visustruct":W8,"../../lessons/diagramme/l06-java-laeuft-nicht-start.visustruct":E8,"../../lessons/diagramme/l06-java-tage-loesung.visustruct":N8,"../../lessons/diagramme/l06-mittelwert-loesung.visustruct":J8,"../../lessons/diagramme/l06-rechner-loesung.visustruct":F8,"../../lessons/diagramme/l07-alter-pruefen.visustruct":R8,"../../lessons/diagramme/l07-betrag-loesung.visustruct":G8,"../../lessons/diagramme/l07-gerade-loesung.visustruct":H8,"../../lessons/diagramme/l07-java-fehler-loesung.visustruct":V8,"../../lessons/diagramme/l07-java-fehler-start.visustruct":Q8,"../../lessons/diagramme/l07-java-laeuft-nicht-loesung.visustruct":q8,"../../lessons/diagramme/l07-java-laeuft-nicht-start.visustruct":U8,"../../lessons/diagramme/l07-java-pizza-loesung.visustruct":Y8,"../../lessons/diagramme/l07-java-pizza-start.visustruct":$8,"../../lessons/diagramme/l07-maximum-loesung.visustruct":X8,"../../lessons/diagramme/l07-rabatt.visustruct":K8,"../../lessons/diagramme/l08-gueltig-loesung.visustruct":eS,"../../lessons/diagramme/l08-java-bestanden-loesung.visustruct":tS,"../../lessons/diagramme/l08-java-fehler-loesung.visustruct":nS,"../../lessons/diagramme/l08-java-fehler-start.visustruct":iS,"../../lessons/diagramme/l08-java-laeuft-nicht-loesung.visustruct":aS,"../../lessons/diagramme/l08-java-laeuft-nicht-start.visustruct":sS,"../../lessons/diagramme/l08-jugendticket.visustruct":rS,"../../lessons/diagramme/l08-note.visustruct":oS,"../../lessons/diagramme/l08-schaltjahr-loesung.visustruct":lS,"../../lessons/diagramme/l08-wochenende-loesung.visustruct":uS,"../../lessons/diagramme/l09-ampel.visustruct":mS,"../../lessons/diagramme/l09-automat.visustruct":cS,"../../lessons/diagramme/l09-java-fehler-loesung.visustruct":dS,"../../lessons/diagramme/l09-java-fehler-start.visustruct":hS,"../../lessons/diagramme/l09-java-laeuft-nicht-loesung.visustruct":gS,"../../lessons/diagramme/l09-java-laeuft-nicht-start.visustruct":pS,"../../lessons/diagramme/l09-java-schule-loesung.visustruct":fS,"../../lessons/diagramme/l09-note-loesung.visustruct":xS,"../../lessons/diagramme/l09-rechner-loesung.visustruct":bS,"../../lessons/diagramme/l09-verschachtelt.visustruct":vS,"../../lessons/diagramme/l1-grundbausteine.visustruct":yS,"../../lessons/diagramme/l1-sequenz.visustruct":wS,"../../lessons/diagramme/l1-tee.visustruct":zS,"../../lessons/diagramme/l1-verzweigung.visustruct":IS,"../../lessons/diagramme/l1-wiederholung.visustruct":kS,"../../lessons/diagramme/l10-bis-n-loesung.visustruct":SS,"../../lessons/diagramme/l10-countdown.visustruct":TS,"../../lessons/diagramme/l10-endlos.visustruct":jS,"../../lessons/diagramme/l10-fakultaet.visustruct":_S,"../../lessons/diagramme/l10-java-fehler-loesung.visustruct":CS,"../../lessons/diagramme/l10-java-fehler-start.visustruct":AS,"../../lessons/diagramme/l10-java-laeuft-nicht-loesung.visustruct":PS,"../../lessons/diagramme/l10-java-laeuft-nicht-start.visustruct":OS,"../../lessons/diagramme/l10-java-wuerfel-loesung.visustruct":MS,"../../lessons/diagramme/l10-verdoppeln-loesung.visustruct":ZS,"../../lessons/diagramme/l11-eingabe-pruefen.visustruct":DS,"../../lessons/diagramme/l11-einmal.visustruct":BS,"../../lessons/diagramme/l11-java-fehler-loesung.visustruct":LS,"../../lessons/diagramme/l11-java-fehler-start.visustruct":WS,"../../lessons/diagramme/l11-java-gerade-loesung.visustruct":ES,"../../lessons/diagramme/l11-java-laeuft-nicht-loesung.visustruct":NS,"../../lessons/diagramme/l11-java-laeuft-nicht-start.visustruct":JS,"../../lessons/diagramme/l11-note-loesung.visustruct":FS,"../../lessons/diagramme/l11-summe-loesung.visustruct":RS,"../../lessons/diagramme/l12-countdown-loesung.visustruct":GS,"../../lessons/diagramme/l12-einmaleins-loesung.visustruct":HS,"../../lessons/diagramme/l12-eins-bis-fuenf.visustruct":VS,"../../lessons/diagramme/l12-java-fehler-loesung.visustruct":QS,"../../lessons/diagramme/l12-java-fehler-start.visustruct":qS,"../../lessons/diagramme/l12-java-laeuft-nicht-loesung.visustruct":US,"../../lessons/diagramme/l12-java-laeuft-nicht-start.visustruct":YS,"../../lessons/diagramme/l12-java-verdoppeln-loesung.visustruct":$S,"../../lessons/diagramme/l12-summe.visustruct":XS,"../../lessons/diagramme/l13-dreieck.visustruct":KS,"../../lessons/diagramme/l13-gerade-eingaben-loesung.visustruct":eT,"../../lessons/diagramme/l13-gerade-zaehlen.visustruct":tT,"../../lessons/diagramme/l13-java-fehler-loesung.visustruct":nT,"../../lessons/diagramme/l13-java-fehler-start.visustruct":iT,"../../lessons/diagramme/l13-java-laeuft-nicht-loesung.visustruct":aT,"../../lessons/diagramme/l13-java-laeuft-nicht-start.visustruct":sT,"../../lessons/diagramme/l13-java-quadrate-loesung.visustruct":rT,"../../lessons/diagramme/l13-rechteck-loesung.visustruct":oT,"../../lessons/diagramme/l14-array-durchlaufen.visustruct":lT,"../../lessons/diagramme/l14-erster-letzter-loesung.visustruct":uT,"../../lessons/diagramme/l14-java-fehler-loesung.visustruct":mT,"../../lessons/diagramme/l14-java-fehler-start.visustruct":cT,"../../lessons/diagramme/l14-java-laeuft-nicht-loesung.visustruct":dT,"../../lessons/diagramme/l14-java-laeuft-nicht-start.visustruct":hT,"../../lessons/diagramme/l14-java-treppe-loesung.visustruct":gT,"../../lessons/diagramme/l14-namen-eingeben.visustruct":pT,"../../lessons/diagramme/l14-rueckwaerts-loesung.visustruct":fT,"../../lessons/diagramme/l14-summe-max-loesung.visustruct":xT,"../../lessons/diagramme/l14-summe-maximum.visustruct":bT,"../../lessons/diagramme/l15-bis-null-loesung.visustruct":vT,"../../lessons/diagramme/l15-endlos-aussprung.visustruct":yT,"../../lessons/diagramme/l15-flaeche-loesung.visustruct":wT,"../../lessons/diagramme/l15-flaeche-unterprogramm-loesung.visustruct":zT,"../../lessons/diagramme/l15-hauptprogramm.visustruct":IT,"../../lessons/diagramme/l15-java-fehler-loesung.visustruct":kT,"../../lessons/diagramme/l15-java-fehler-start.visustruct":ST,"../../lessons/diagramme/l15-java-laeuft-nicht-loesung.visustruct":TT,"../../lessons/diagramme/l15-java-laeuft-nicht-start.visustruct":jT,"../../lessons/diagramme/l15-java-noten-loesung.visustruct":_T,"../../lessons/diagramme/l15-quadrat-haupt.visustruct":CT,"../../lessons/diagramme/l15-quadrat.visustruct":AT,"../../lessons/diagramme/l15-titel-loesung.visustruct":PT,"../../lessons/diagramme/l15-unterprogramm.visustruct":OT,"../../lessons/diagramme/l15-zeige-summe-haupt.visustruct":MT,"../../lessons/diagramme/l15-zeige-summe.visustruct":ZT,"../../lessons/diagramme/l16-countdown-loesung.visustruct":DT,"../../lessons/diagramme/l16-countdown-start.visustruct":BT,"../../lessons/diagramme/l16-java-fehler-loesung.visustruct":LT,"../../lessons/diagramme/l16-java-fehler-start.visustruct":WT,"../../lessons/diagramme/l16-java-laeuft-nicht-loesung.visustruct":ET,"../../lessons/diagramme/l16-java-laeuft-nicht-start.visustruct":NT,"../../lessons/diagramme/l16-java-punkte-loesung.visustruct":JT,"../../lessons/diagramme/l16-schreibtisch.visustruct":FT,"../../lessons/diagramme/l16-summe-loesung.visustruct":RT,"../../lessons/diagramme/l16-summe-start.visustruct":GT,"../../lessons/diagramme/l17-beispiel.visustruct":HT,"../../lessons/diagramme/l17-fakultaet-loesung.visustruct":VT,"../../lessons/diagramme/l17-java-brief-loesung.visustruct":QT,"../../lessons/diagramme/l17-java-brief-start.visustruct":qT,"../../lessons/diagramme/l17-java-fehler-loesung.visustruct":UT,"../../lessons/diagramme/l17-java-fehler-start.visustruct":YT,"../../lessons/diagramme/l17-java-laeuft-nicht-loesung.visustruct":$T,"../../lessons/diagramme/l17-java-laeuft-nicht-start.visustruct":XT,"../../lessons/diagramme/l17-java-passwort-loesung.visustruct":KT,"../../lessons/diagramme/l17-ticket-loesung.visustruct":ej,"../../lessons/diagramme/l18-beispiel.visustruct":tj,"../../lessons/diagramme/l18-java-fehler-loesung.visustruct":nj,"../../lessons/diagramme/l18-java-fehler-start.visustruct":ij,"../../lessons/diagramme/l18-java-kasse-loesung.visustruct":aj,"../../lessons/diagramme/l18-js-loesung.visustruct":sj,"../../lessons/diagramme/l18-python-loesung.visustruct":rj,"../../lessons/diagramme/l19-java-fehler-loesung.visustruct":oj,"../../lessons/diagramme/l19-java-fehler-start.visustruct":lj,"../../lessons/diagramme/l19-java-laeuft-nicht-loesung.visustruct":uj,"../../lessons/diagramme/l19-java-laeuft-nicht-start.visustruct":mj,"../../lessons/diagramme/l19-java-zaehlen-loesung.visustruct":cj,"../../lessons/diagramme/l2-ausgabe.visustruct":dj,"../../lessons/diagramme/l2-hallo-loesung.visustruct":hj,"../../lessons/diagramme/l2-zwei-zeilen-loesung.visustruct":gj,"../../lessons/diagramme/l20-countdown-loesung.visustruct":pj,"../../lessons/diagramme/l23-java-ergaenzen-loesung.visustruct":fj,"../../lessons/diagramme/l23-java-ergaenzen-start.visustruct":xj,"../../lessons/diagramme/l23-java-nummern-loesung.visustruct":bj,"../../lessons/diagramme/l23-java-nummern-start.visustruct":vj,"../../lessons/diagramme/l24-java-fuchs-loesung.visustruct":yj,"../../lessons/diagramme/l24-java-fuchs-start.visustruct":wj,"../../lessons/diagramme/l24-java-laengster-loesung.visustruct":zj,"../../lessons/diagramme/l24-java-laengster-start.visustruct":Ij,"../../lessons/diagramme/l25-java-beste-loesung.visustruct":kj,"../../lessons/diagramme/l25-java-beste-start.visustruct":Sj,"../../lessons/diagramme/l25-java-schnitt-loesung.visustruct":Tj,"../../lessons/diagramme/l25-java-schnitt-start.visustruct":jj,"../../lessons/diagramme/l26-java-namen-loesung.visustruct":_j,"../../lessons/diagramme/l26-java-namen-start.visustruct":Cj,"../../lessons/diagramme/l26-java-schreiben-loesung.visustruct":Aj,"../../lessons/diagramme/l26-java-schreiben-start.visustruct":Pj,"../../lessons/diagramme/l27-java-json-loesung.visustruct":Oj,"../../lessons/diagramme/l27-java-json-start.visustruct":Mj,"../../lessons/diagramme/l27-java-saetze-loesung.visustruct":Zj,"../../lessons/diagramme/l27-java-saetze-start.visustruct":Dj,"../../lessons/diagramme/pt/aufgabe-alter-haupt-loesung.visustruct":Bj,"../../lessons/diagramme/pt/aufgabe-alter-unterprogramm-loesung.visustruct":Lj,"../../lessons/diagramme/pt/aufgabe-ballwurf-loesung.visustruct":Wj,"../../lessons/diagramme/pt/aufgabe-ballwurf-start.visustruct":Ej,"../../lessons/diagramme/pt/aufgabe-bestenliste-loesung.visustruct":Nj,"../../lessons/diagramme/pt/aufgabe-binaer-loesung.visustruct":Jj,"../../lessons/diagramme/pt/aufgabe-caesar-array-loesung.visustruct":Fj,"../../lessons/diagramme/pt/aufgabe-caesar-array-start.visustruct":Rj,"../../lessons/diagramme/pt/aufgabe-caesar-ascii-loesung.visustruct":Gj,"../../lessons/diagramme/pt/aufgabe-caesar-entschluesseln-loesung.visustruct":Hj,"../../lessons/diagramme/pt/aufgabe-collatz-loesung.visustruct":Vj,"../../lessons/diagramme/pt/aufgabe-durchschnitt-loesung.visustruct":Qj,"../../lessons/diagramme/pt/aufgabe-fibonacci-loesung.visustruct":qj,"../../lessons/diagramme/pt/aufgabe-gerade-loesung.visustruct":Uj,"../../lessons/diagramme/pt/aufgabe-mehrwertsteuer-loesung.visustruct":Yj,"../../lessons/diagramme/pt/aufgabe-pin-java-loesung.visustruct":$j,"../../lessons/diagramme/pt/aufgabe-pin-loesung.visustruct":Xj,"../../lessons/diagramme/pt/aufgabe-rechner-loesung.visustruct":Kj,"../../lessons/diagramme/pt/aufgabe-schiffe-loesung.visustruct":e_,"../../lessons/diagramme/pt/aufgabe-schiffe-start.visustruct":t_,"../../lessons/diagramme/pt/aufgabe-speisekarte-loesung.visustruct":n_,"../../lessons/diagramme/pt/aufgabe-summe-loesung.visustruct":i_,"../../lessons/diagramme/pt/aufgabe-tafeldienst-loesung.visustruct":a_,"../../lessons/diagramme/pt/aufgabe-verdoppeln-loesung.visustruct":s_,"../../lessons/diagramme/pt/aufgabe-verleih-java-loesung.visustruct":r_,"../../lessons/diagramme/pt/aufgabe-verleih-loesung.visustruct":o_,"../../lessons/diagramme/pt/aufgabe-vokabeln-loesung.visustruct":l_,"../../lessons/diagramme/pt/aufgabe-vokabeln-start.visustruct":u_,"../../lessons/diagramme/pt/aufgabe-volljaehrig-loesung.visustruct":m_,"../../lessons/diagramme/pt/dt-buffered.visustruct":c_,"../../lessons/diagramme/pt/dt-csv.visustruct":d_,"../../lessons/diagramme/pt/dt-json.visustruct":h_,"../../lessons/diagramme/pt/dt-lesen.visustruct":g_,"../../lessons/diagramme/pt/kino-einmaleins-loesung.visustruct":p_,"../../lessons/diagramme/pt/kino-frei-loesung.visustruct":f_,"../../lessons/diagramme/pt/kino-frei-start.visustruct":x_,"../../lessons/diagramme/pt/kino-karte-loesung.visustruct":b_,"../../lessons/diagramme/pt/kino-karte-start.visustruct":v_,"../../lessons/diagramme/pt/kino-saalplan.visustruct":y_,"../../lessons/diagramme/pt/kino-verkaufen.visustruct":w_,"../../lessons/diagramme/pt/l04-gross-klein-loesung.visustruct":z_,"../../lessons/diagramme/pt/l04-gross-klein-start.visustruct":I_,"../../lessons/diagramme/pt/l04-java-fehler-loesung.visustruct":k_,"../../lessons/diagramme/pt/l04-java-fehler-start.visustruct":S_,"../../lessons/diagramme/pt/l04-java-laeuft-nicht-loesung.visustruct":T_,"../../lessons/diagramme/pt/l04-java-laeuft-nicht-start.visustruct":j_,"../../lessons/diagramme/pt/l04-java-steckbrief-loesung.visustruct":__,"../../lessons/diagramme/pt/l04-rechnen.visustruct":C_,"../../lessons/diagramme/pt/l04-reihenfolge-loesung.visustruct":A_,"../../lessons/diagramme/pt/l04-reihenfolge-start.visustruct":P_,"../../lessons/diagramme/pt/l04-tauschen-loesung.visustruct":O_,"../../lessons/diagramme/pt/l04-tauschen-start.visustruct":M_,"../../lessons/diagramme/pt/l04-tauschen.visustruct":Z_,"../../lessons/diagramme/pt/l05-datentypen.visustruct":D_,"../../lessons/diagramme/pt/l05-division.visustruct":B_,"../../lessons/diagramme/pt/l05-einkauf-loesung.visustruct":L_,"../../lessons/diagramme/pt/l05-java-fehler-loesung.visustruct":W_,"../../lessons/diagramme/pt/l05-java-fehler-start.visustruct":E_,"../../lessons/diagramme/pt/l05-java-kino-loesung.visustruct":N_,"../../lessons/diagramme/pt/l05-java-laeuft-nicht-loesung.visustruct":J_,"../../lessons/diagramme/pt/l05-java-laeuft-nicht-start.visustruct":F_,"../../lessons/diagramme/pt/l05-rechteck-loesung.visustruct":R_,"../../lessons/diagramme/pt/l05-sekunden-loesung.visustruct":G_,"../../lessons/diagramme/pt/l05-sekunden-start.visustruct":H_,"../../lessons/diagramme/pt/l05-sequenz.visustruct":V_,"../../lessons/diagramme/pt/l06-begruessung-loesung.visustruct":Q_,"../../lessons/diagramme/pt/l06-eva.visustruct":q_,"../../lessons/diagramme/pt/l06-java-fehler-loesung.visustruct":U_,"../../lessons/diagramme/pt/l06-java-fehler-start.visustruct":Y_,"../../lessons/diagramme/pt/l06-java-laeuft-nicht-loesung.visustruct":$_,"../../lessons/diagramme/pt/l06-java-laeuft-nicht-start.visustruct":X_,"../../lessons/diagramme/pt/l06-java-tage-loesung.visustruct":K_,"../../lessons/diagramme/pt/l06-mittelwert-loesung.visustruct":eC,"../../lessons/diagramme/pt/l06-rechner-loesung.visustruct":tC,"../../lessons/diagramme/pt/l07-alter-pruefen.visustruct":nC,"../../lessons/diagramme/pt/l07-betrag-loesung.visustruct":iC,"../../lessons/diagramme/pt/l07-gerade-loesung.visustruct":aC,"../../lessons/diagramme/pt/l07-java-fehler-loesung.visustruct":sC,"../../lessons/diagramme/pt/l07-java-fehler-start.visustruct":rC,"../../lessons/diagramme/pt/l07-java-laeuft-nicht-loesung.visustruct":oC,"../../lessons/diagramme/pt/l07-java-laeuft-nicht-start.visustruct":lC,"../../lessons/diagramme/pt/l07-java-pizza-loesung.visustruct":uC,"../../lessons/diagramme/pt/l07-java-pizza-start.visustruct":mC,"../../lessons/diagramme/pt/l07-maximum-loesung.visustruct":cC,"../../lessons/diagramme/pt/l07-rabatt.visustruct":dC,"../../lessons/diagramme/pt/l08-gueltig-loesung.visustruct":hC,"../../lessons/diagramme/pt/l08-java-bestanden-loesung.visustruct":gC,"../../lessons/diagramme/pt/l08-java-fehler-loesung.visustruct":pC,"../../lessons/diagramme/pt/l08-java-fehler-start.visustruct":fC,"../../lessons/diagramme/pt/l08-java-laeuft-nicht-loesung.visustruct":xC,"../../lessons/diagramme/pt/l08-java-laeuft-nicht-start.visustruct":bC,"../../lessons/diagramme/pt/l08-jugendticket.visustruct":vC,"../../lessons/diagramme/pt/l08-note.visustruct":yC,"../../lessons/diagramme/pt/l08-schaltjahr-loesung.visustruct":wC,"../../lessons/diagramme/pt/l08-wochenende-loesung.visustruct":zC,"../../lessons/diagramme/pt/l09-ampel.visustruct":IC,"../../lessons/diagramme/pt/l09-automat.visustruct":kC,"../../lessons/diagramme/pt/l09-java-fehler-loesung.visustruct":SC,"../../lessons/diagramme/pt/l09-java-fehler-start.visustruct":TC,"../../lessons/diagramme/pt/l09-java-laeuft-nicht-loesung.visustruct":jC,"../../lessons/diagramme/pt/l09-java-laeuft-nicht-start.visustruct":_C,"../../lessons/diagramme/pt/l09-java-schule-loesung.visustruct":CC,"../../lessons/diagramme/pt/l09-note-loesung.visustruct":AC,"../../lessons/diagramme/pt/l09-rechner-loesung.visustruct":PC,"../../lessons/diagramme/pt/l09-verschachtelt.visustruct":OC,"../../lessons/diagramme/pt/l1-grundbausteine.visustruct":MC,"../../lessons/diagramme/pt/l1-sequenz.visustruct":ZC,"../../lessons/diagramme/pt/l1-tee.visustruct":DC,"../../lessons/diagramme/pt/l1-verzweigung.visustruct":BC,"../../lessons/diagramme/pt/l1-wiederholung.visustruct":LC,"../../lessons/diagramme/pt/l10-bis-n-loesung.visustruct":WC,"../../lessons/diagramme/pt/l10-countdown.visustruct":EC,"../../lessons/diagramme/pt/l10-endlos.visustruct":NC,"../../lessons/diagramme/pt/l10-fakultaet.visustruct":JC,"../../lessons/diagramme/pt/l10-java-fehler-loesung.visustruct":FC,"../../lessons/diagramme/pt/l10-java-fehler-start.visustruct":RC,"../../lessons/diagramme/pt/l10-java-laeuft-nicht-loesung.visustruct":GC,"../../lessons/diagramme/pt/l10-java-laeuft-nicht-start.visustruct":HC,"../../lessons/diagramme/pt/l10-java-wuerfel-loesung.visustruct":VC,"../../lessons/diagramme/pt/l10-verdoppeln-loesung.visustruct":QC,"../../lessons/diagramme/pt/l11-eingabe-pruefen.visustruct":qC,"../../lessons/diagramme/pt/l11-einmal.visustruct":UC,"../../lessons/diagramme/pt/l11-java-fehler-loesung.visustruct":YC,"../../lessons/diagramme/pt/l11-java-fehler-start.visustruct":$C,"../../lessons/diagramme/pt/l11-java-gerade-loesung.visustruct":XC,"../../lessons/diagramme/pt/l11-java-laeuft-nicht-loesung.visustruct":KC,"../../lessons/diagramme/pt/l11-java-laeuft-nicht-start.visustruct":eA,"../../lessons/diagramme/pt/l11-note-loesung.visustruct":tA,"../../lessons/diagramme/pt/l11-summe-loesung.visustruct":nA,"../../lessons/diagramme/pt/l12-countdown-loesung.visustruct":iA,"../../lessons/diagramme/pt/l12-einmaleins-loesung.visustruct":aA,"../../lessons/diagramme/pt/l12-eins-bis-fuenf.visustruct":sA,"../../lessons/diagramme/pt/l12-java-fehler-loesung.visustruct":rA,"../../lessons/diagramme/pt/l12-java-fehler-start.visustruct":oA,"../../lessons/diagramme/pt/l12-java-laeuft-nicht-loesung.visustruct":lA,"../../lessons/diagramme/pt/l12-java-laeuft-nicht-start.visustruct":uA,"../../lessons/diagramme/pt/l12-java-verdoppeln-loesung.visustruct":mA,"../../lessons/diagramme/pt/l12-summe.visustruct":cA,"../../lessons/diagramme/pt/l13-dreieck.visustruct":dA,"../../lessons/diagramme/pt/l13-gerade-eingaben-loesung.visustruct":hA,"../../lessons/diagramme/pt/l13-gerade-zaehlen.visustruct":gA,"../../lessons/diagramme/pt/l13-java-fehler-loesung.visustruct":pA,"../../lessons/diagramme/pt/l13-java-fehler-start.visustruct":fA,"../../lessons/diagramme/pt/l13-java-laeuft-nicht-loesung.visustruct":xA,"../../lessons/diagramme/pt/l13-java-laeuft-nicht-start.visustruct":bA,"../../lessons/diagramme/pt/l13-java-quadrate-loesung.visustruct":vA,"../../lessons/diagramme/pt/l13-rechteck-loesung.visustruct":yA,"../../lessons/diagramme/pt/l14-array-durchlaufen.visustruct":wA,"../../lessons/diagramme/pt/l14-erster-letzter-loesung.visustruct":zA,"../../lessons/diagramme/pt/l14-java-fehler-loesung.visustruct":IA,"../../lessons/diagramme/pt/l14-java-fehler-start.visustruct":kA,"../../lessons/diagramme/pt/l14-java-laeuft-nicht-loesung.visustruct":SA,"../../lessons/diagramme/pt/l14-java-laeuft-nicht-start.visustruct":TA,"../../lessons/diagramme/pt/l14-java-treppe-loesung.visustruct":jA,"../../lessons/diagramme/pt/l14-namen-eingeben.visustruct":_A,"../../lessons/diagramme/pt/l14-rueckwaerts-loesung.visustruct":CA,"../../lessons/diagramme/pt/l14-summe-max-loesung.visustruct":AA,"../../lessons/diagramme/pt/l14-summe-maximum.visustruct":PA,"../../lessons/diagramme/pt/l15-bis-null-loesung.visustruct":OA,"../../lessons/diagramme/pt/l15-endlos-aussprung.visustruct":MA,"../../lessons/diagramme/pt/l15-flaeche-loesung.visustruct":ZA,"../../lessons/diagramme/pt/l15-hauptprogramm.visustruct":DA,"../../lessons/diagramme/pt/l15-java-fehler-loesung.visustruct":BA,"../../lessons/diagramme/pt/l15-java-fehler-start.visustruct":LA,"../../lessons/diagramme/pt/l15-java-laeuft-nicht-loesung.visustruct":WA,"../../lessons/diagramme/pt/l15-java-laeuft-nicht-start.visustruct":EA,"../../lessons/diagramme/pt/l15-java-noten-loesung.visustruct":NA,"../../lessons/diagramme/pt/l15-quadrat-haupt.visustruct":JA,"../../lessons/diagramme/pt/l15-quadrat.visustruct":FA,"../../lessons/diagramme/pt/l15-titel-loesung.visustruct":RA,"../../lessons/diagramme/pt/l15-unterprogramm.visustruct":GA,"../../lessons/diagramme/pt/l15-zeige-summe-haupt.visustruct":HA,"../../lessons/diagramme/pt/l15-zeige-summe.visustruct":VA,"../../lessons/diagramme/pt/l16-countdown-loesung.visustruct":QA,"../../lessons/diagramme/pt/l16-countdown-start.visustruct":qA,"../../lessons/diagramme/pt/l16-java-fehler-loesung.visustruct":UA,"../../lessons/diagramme/pt/l16-java-fehler-start.visustruct":YA,"../../lessons/diagramme/pt/l16-java-laeuft-nicht-loesung.visustruct":$A,"../../lessons/diagramme/pt/l16-java-laeuft-nicht-start.visustruct":XA,"../../lessons/diagramme/pt/l16-java-punkte-loesung.visustruct":KA,"../../lessons/diagramme/pt/l16-schreibtisch.visustruct":eP,"../../lessons/diagramme/pt/l16-summe-loesung.visustruct":tP,"../../lessons/diagramme/pt/l16-summe-start.visustruct":nP,"../../lessons/diagramme/pt/l17-beispiel.visustruct":iP,"../../lessons/diagramme/pt/l17-fakultaet-loesung.visustruct":aP,"../../lessons/diagramme/pt/l17-java-brief-loesung.visustruct":sP,"../../lessons/diagramme/pt/l17-java-brief-start.visustruct":rP,"../../lessons/diagramme/pt/l17-java-fehler-loesung.visustruct":oP,"../../lessons/diagramme/pt/l17-java-fehler-start.visustruct":lP,"../../lessons/diagramme/pt/l17-java-laeuft-nicht-loesung.visustruct":uP,"../../lessons/diagramme/pt/l17-java-laeuft-nicht-start.visustruct":mP,"../../lessons/diagramme/pt/l17-java-passwort-loesung.visustruct":cP,"../../lessons/diagramme/pt/l17-ticket-loesung.visustruct":dP,"../../lessons/diagramme/pt/l18-beispiel.visustruct":hP,"../../lessons/diagramme/pt/l18-java-fehler-loesung.visustruct":gP,"../../lessons/diagramme/pt/l18-java-fehler-start.visustruct":pP,"../../lessons/diagramme/pt/l18-java-kasse-loesung.visustruct":fP,"../../lessons/diagramme/pt/l18-js-loesung.visustruct":xP,"../../lessons/diagramme/pt/l18-python-loesung.visustruct":bP,"../../lessons/diagramme/pt/l19-java-fehler-loesung.visustruct":vP,"../../lessons/diagramme/pt/l19-java-fehler-start.visustruct":yP,"../../lessons/diagramme/pt/l19-java-laeuft-nicht-loesung.visustruct":wP,"../../lessons/diagramme/pt/l19-java-laeuft-nicht-start.visustruct":zP,"../../lessons/diagramme/pt/l19-java-zaehlen-loesung.visustruct":IP,"../../lessons/diagramme/pt/l2-ausgabe.visustruct":kP,"../../lessons/diagramme/pt/l2-hallo-loesung.visustruct":SP,"../../lessons/diagramme/pt/l2-zwei-zeilen-loesung.visustruct":TP,"../../lessons/diagramme/pt/l23-java-ergaenzen-loesung.visustruct":jP,"../../lessons/diagramme/pt/l23-java-ergaenzen-start.visustruct":_P,"../../lessons/diagramme/pt/l23-java-nummern-loesung.visustruct":CP,"../../lessons/diagramme/pt/l23-java-nummern-start.visustruct":AP,"../../lessons/diagramme/pt/l24-java-fuchs-loesung.visustruct":PP,"../../lessons/diagramme/pt/l24-java-fuchs-start.visustruct":OP,"../../lessons/diagramme/pt/l24-java-laengster-loesung.visustruct":MP,"../../lessons/diagramme/pt/l24-java-laengster-start.visustruct":ZP,"../../lessons/diagramme/pt/l25-java-beste-loesung.visustruct":DP,"../../lessons/diagramme/pt/l25-java-beste-start.visustruct":BP,"../../lessons/diagramme/pt/l25-java-schnitt-loesung.visustruct":LP,"../../lessons/diagramme/pt/l25-java-schnitt-start.visustruct":WP,"../../lessons/diagramme/pt/l26-java-namen-loesung.visustruct":EP,"../../lessons/diagramme/pt/l26-java-namen-start.visustruct":NP,"../../lessons/diagramme/pt/l26-java-schreiben-loesung.visustruct":JP,"../../lessons/diagramme/pt/l26-java-schreiben-start.visustruct":FP,"../../lessons/diagramme/pt/l27-java-json-loesung.visustruct":RP,"../../lessons/diagramme/pt/l27-java-json-start.visustruct":GP,"../../lessons/diagramme/pt/l27-java-saetze-loesung.visustruct":HP,"../../lessons/diagramme/pt/l27-java-saetze-start.visustruct":VP,"../../lessons/diagramme/pt/sim-kino-loesung.visustruct":QP,"../../lessons/diagramme/pt/sim-kino-start.visustruct":qP,"../../lessons/diagramme/pt/sim-tausch-loesung.visustruct":UP,"../../lessons/diagramme/pt/sim-tausch-start.visustruct":YP,"../../lessons/diagramme/pt/sim-tausch.visustruct":$P,"../../lessons/diagramme/pt/ss-absteigend-loesung.visustruct":XP,"../../lessons/diagramme/pt/ss-absteigend-start.visustruct":KP,"../../lessons/diagramme/pt/ss-binaere-suche.visustruct":eO,"../../lessons/diagramme/pt/ss-bubblesort.visustruct":tO,"../../lessons/diagramme/pt/ss-karte-suchen-loesung.visustruct":nO,"../../lessons/diagramme/pt/ss-lineare-suche.visustruct":iO,"../../lessons/diagramme/pt/uebergabe-bonus-loesung.visustruct":aO,"../../lessons/diagramme/pt/uebergabe-bonus-start.visustruct":sO,"../../lessons/diagramme/pt/uebergabe-bonus-unterprogramm-loesung.visustruct":rO,"../../lessons/diagramme/pt/uebergabe-haupt.visustruct":oO,"../../lessons/diagramme/pt/uebergabe-leeren.visustruct":lO,"../../lessons/diagramme/pt/uebergabe-verdopple.visustruct":uO,"../../lessons/diagramme/pt/zk-initialen-loesung.visustruct":mO,"../../lessons/diagramme/pt/zk-mehr.visustruct":cO,"../../lessons/diagramme/pt/zk-rueckwaerts-loesung.visustruct":dO,"../../lessons/diagramme/pt/zk-split.visustruct":hO,"../../lessons/diagramme/pt/zk-woerter-loesung.visustruct":gO,"../../lessons/diagramme/pt/zk-zaehlen.visustruct":pO,"../../lessons/diagramme/pt/zk-zeichen.visustruct":fO,"../../lessons/diagramme/sim-kino-loesung.visustruct":xO,"../../lessons/diagramme/sim-kino-start.visustruct":bO,"../../lessons/diagramme/sim-tausch-loesung.visustruct":vO,"../../lessons/diagramme/sim-tausch-start.visustruct":yO,"../../lessons/diagramme/sim-tausch.visustruct":wO,"../../lessons/diagramme/ss-absteigend-loesung.visustruct":zO,"../../lessons/diagramme/ss-absteigend-start.visustruct":IO,"../../lessons/diagramme/ss-binaere-suche.visustruct":kO,"../../lessons/diagramme/ss-bubblesort.visustruct":SO,"../../lessons/diagramme/ss-karte-suchen-loesung.visustruct":TO,"../../lessons/diagramme/ss-lineare-suche.visustruct":jO,"../../lessons/diagramme/uebergabe-bonus-loesung.visustruct":_O,"../../lessons/diagramme/uebergabe-bonus-start.visustruct":CO,"../../lessons/diagramme/uebergabe-bonus-unterprogramm-loesung.visustruct":AO,"../../lessons/diagramme/uebergabe-haupt.visustruct":PO,"../../lessons/diagramme/uebergabe-leeren.visustruct":OO,"../../lessons/diagramme/uebergabe-verdopple.visustruct":MO,"../../lessons/diagramme/vb-abstand-anzeigen-loesung.visustruct":ZO,"../../lessons/diagramme/vb-abstand-halten-loesung.visustruct":DO,"../../lessons/diagramme/vb-alarmanlage-loesung.visustruct":BO,"../../lessons/diagramme/vb-ampel-loesung.visustruct":LO,"../../lessons/diagramme/vb-ausgang-loesung.visustruct":WO,"../../lessons/diagramme/vb-begruessung-loesung.visustruct":EO,"../../lessons/diagramme/vb-binaer-zaehlen-loesung.visustruct":NO,"../../lessons/diagramme/vb-bis-rot-loesung.visustruct":JO,"../../lessons/diagramme/vb-bis-wand-loesung.visustruct":FO,"../../lessons/diagramme/vb-bis-ziel-loesung.visustruct":RO,"../../lessons/diagramme/vb-buchstaben-loesung.visustruct":GO,"../../lessons/diagramme/vb-drei-lichter-loesung.visustruct":HO,"../../lessons/diagramme/vb-dreieck-loesung.visustruct":VO,"../../lessons/diagramme/vb-einparken-loesung.visustruct":QO,"../../lessons/diagramme/vb-farben-loesung.visustruct":qO,"../../lessons/diagramme/vb-farbweiche-loesung.visustruct":UO,"../../lessons/diagramme/vb-gas-bis-wand-loesung.visustruct":YO,"../../lessons/diagramme/vb-gerade-loesung.visustruct":$O,"../../lessons/diagramme/vb-hindernis-loesung.visustruct":XO,"../../lessons/diagramme/vb-java-akku-loesung.visustruct":KO,"../../lessons/diagramme/vb-java-blau-gruen-loesung.visustruct":eM,"../../lessons/diagramme/vb-java-blinken-loesung.visustruct":tM,"../../lessons/diagramme/vb-java-countdown-loesung.visustruct":nM,"../../lessons/diagramme/vb-java-hoeher-loesung.visustruct":iM,"../../lessons/diagramme/vb-java-joystick-loesung.visustruct":aM,"../../lessons/diagramme/vb-java-laermampel-loesung.visustruct":sM,"../../lessons/diagramme/vb-java-lauflicht-loesung.visustruct":rM,"../../lessons/diagramme/vb-java-linienfolger-loesung.visustruct":oM,"../../lessons/diagramme/vb-java-nachtlicht-ton-loesung.visustruct":lM,"../../lessons/diagramme/vb-java-rand-loesung.visustruct":uM,"../../lessons/diagramme/vb-java-rechteck-loesung.visustruct":mM,"../../lessons/diagramme/vb-java-textlaenge-loesung.visustruct":cM,"../../lessons/diagramme/vb-java-wand-piep-loesung.visustruct":dM,"../../lessons/diagramme/vb-java-wasserwaage-loesung.visustruct":hM,"../../lessons/diagramme/vb-klatschen-loesung.visustruct":gM,"../../lessons/diagramme/vb-knight-rider-loesung.visustruct":pM,"../../lessons/diagramme/vb-labyrinth-loesung.visustruct":fM,"../../lessons/diagramme/vb-linienfolger-stopp-loesung.visustruct":xM,"../../lessons/diagramme/vb-linienmuster-loesung.visustruct":bM,"../../lessons/diagramme/vb-melodie-loesung.visustruct":vM,"../../lessons/diagramme/vb-morsen-loesung.visustruct":yM,"../../lessons/diagramme/vb-nachtlicht-loesung.visustruct":wM,"../../lessons/diagramme/vb-nachtwaechter-loesung.visustruct":zM,"../../lessons/diagramme/vb-ohne-noten-loesung.visustruct":IM,"../../lessons/diagramme/vb-ohne-quadratzahl-loesung.visustruct":kM,"../../lessons/diagramme/vb-ohne-quadratzahl-unterprogramm-loesung.visustruct":SM,"../../lessons/diagramme/vb-ohne-rueckwaerts-loesung.visustruct":TM,"../../lessons/diagramme/vb-ohne-strecke-loesung.visustruct":jM,"../../lessons/diagramme/vb-ohne-summe-loesung.visustruct":_M,"../../lessons/diagramme/vb-quadrat-loesung.visustruct":CM,"../../lessons/diagramme/vb-quadrat-methode-loesung.visustruct":AM,"../../lessons/diagramme/vb-quadrat-schleife-loesung.visustruct":PM,"../../lessons/diagramme/vb-quadrat-unterprogramm-loesung.visustruct":OM,"../../lessons/diagramme/vb-quadrat-verschachtelt-loesung.visustruct":MM,"../../lessons/diagramme/vb-rand-loesung.visustruct":ZM,"../../lessons/diagramme/vb-schraeglage-loesung.visustruct":DM,"../../lessons/diagramme/vb-slalom-loesung.visustruct":BM,"../../lessons/diagramme/vb-spirale-loesung.visustruct":LM,"../../lessons/diagramme/vb-start-a-loesung.visustruct":WM,"../../lessons/diagramme/vb-tonleiter-loesung.visustruct":EM,"../../lessons/diagramme/vb-treppe-loesung.visustruct":NM,"../../lessons/diagramme/vb-tunnel-loesung.visustruct":JM,"../../lessons/diagramme/vb-variable-seite-loesung.visustruct":FM,"../../lessons/diagramme/vb-vier-quadrate-loesung.visustruct":RM,"../../lessons/diagramme/vb-wald-loesung.visustruct":GM,"../../lessons/diagramme/vb-wand-vorn-loesung.visustruct":HM,"../../lessons/diagramme/vb-zwei-sekunden-loesung.visustruct":VM,"../../lessons/diagramme/zk-initialen-loesung.visustruct":QM,"../../lessons/diagramme/zk-mehr.visustruct":qM,"../../lessons/diagramme/zk-rueckwaerts-loesung.visustruct":UM,"../../lessons/diagramme/zk-split.visustruct":YM,"../../lessons/diagramme/zk-woerter-loesung.visustruct":$M,"../../lessons/diagramme/zk-zaehlen.visustruct":XM,"../../lessons/diagramme/zk-zeichen.visustruct":KM}),YB=Object.assign({"../../lessons/welten/ausgang-1.txt":eZ,"../../lessons/welten/ausgang-2.txt":tZ,"../../lessons/welten/ecke.txt":nZ,"../../lessons/welten/farbe-1.txt":iZ,"../../lessons/welten/farbe-2.txt":aZ,"../../lessons/welten/farbe-3.txt":sZ,"../../lessons/welten/farbe-4.txt":rZ,"../../lessons/welten/hindernis-1.txt":oZ,"../../lessons/welten/hindernis-2.txt":lZ,"../../lessons/welten/labyrinth-1.txt":uZ,"../../lessons/welten/labyrinth-2.txt":mZ,"../../lessons/welten/linie-1.txt":cZ,"../../lessons/welten/linie-2.txt":dZ,"../../lessons/welten/linie-rot-1.txt":hZ,"../../lessons/welten/linie-rot-2.txt":gZ,"../../lessons/welten/parken-1.txt":pZ,"../../lessons/welten/parken-2.txt":fZ,"../../lessons/welten/rand-1.txt":xZ,"../../lessons/welten/rand-2.txt":bZ,"../../lessons/welten/slalom.txt":vZ,"../../lessons/welten/tunnel-1.txt":yZ,"../../lessons/welten/tunnel-2.txt":wZ,"../../lessons/welten/wald-1.txt":zZ,"../../lessons/welten/wald-2.txt":IZ,"../../lessons/welten/wand-frei.txt":kZ,"../../lessons/welten/wand-kurz.txt":SZ,"../../lessons/welten/wand-lang.txt":TZ,"../../lessons/welten/wand-mittel.txt":jZ,"../../lessons/welten/wand-nah.txt":_Z,"../../lessons/welten/zeit-1.txt":CZ,"../../lessons/welten/ziel-kurz.txt":AZ,"../../lessons/welten/ziel-lang.txt":PZ}),$B=Object.assign({"../../lessons/bilder/ada-lovelace.jpg":OZ,"../../lessons/bilder/aufgabe-mehrwertsteuer.svg":MZ,"../../lessons/bilder/ben-shneiderman.jpg":ZZ,"../../lessons/bilder/caesar-ascii.svg":DZ,"../../lessons/bilder/caesar-scheibe.svg":BZ,"../../lessons/bilder/caesar-verschiebung.svg":LZ,"../../lessons/bilder/en/aufgabe-mehrwertsteuer.svg":WZ,"../../lessons/bilder/en/kino-saal.svg":EZ,"../../lessons/bilder/en/kino-schleifen.svg":NZ,"../../lessons/bilder/en/l01-pap.svg":JZ,"../../lessons/bilder/en/l02-einfuegen.svg":FZ,"../../lessons/bilder/en/l03-lochkarte-beschriftet.svg":RZ,"../../lessons/bilder/en/l03-lochkarte.svg":GZ,"../../lessons/bilder/en/l04-camelcase.svg":HZ,"../../lessons/bilder/en/l04-variable.svg":VZ,"../../lessons/bilder/en/l04-zuweisung.svg":QZ,"../../lessons/bilder/en/l05-tauschen.svg":qZ,"../../lessons/bilder/en/l08-zahlenstrahl.svg":UZ,"../../lessons/bilder/en/l10-kopfgesteuert.svg":YZ,"../../lessons/bilder/en/l11-vergleich.svg":$Z,"../../lessons/bilder/en/l12-for-ablauf.svg":XZ,"../../lessons/bilder/en/l14-array.svg":KZ,"../../lessons/bilder/en/l20-cpp.svg":eD,"../../lessons/bilder/en/l20-jvm.svg":tD,"../../lessons/bilder/en/mvc-klick.svg":nD,"../../lessons/bilder/en/ss-binaere-suche.svg":iD,"../../lessons/bilder/en/ss-bubblesort.svg":aD,"../../lessons/bilder/en/ss-lineare-suche.svg":sD,"../../lessons/bilder/en/ss-vergleiche.svg":rD,"../../lessons/bilder/en/uebergabe.svg":oD,"../../lessons/bilder/en/zk-zeichen.svg":lD,"../../lessons/bilder/grace-hopper.jpg":uD,"../../lessons/bilder/hedy-lamarr.jpg":mD,"../../lessons/bilder/ike-nassi.jpg":cD,"../../lessons/bilder/katherine-johnson.jpg":dD,"../../lessons/bilder/kino-saal.svg":hD,"../../lessons/bilder/kino-schleifen.svg":gD,"../../lessons/bilder/l01-pap.svg":pD,"../../lessons/bilder/l02-einfuegen.svg":fD,"../../lessons/bilder/l03-lochkarte-beschriftet.svg":xD,"../../lessons/bilder/l03-lochkarte.svg":bD,"../../lessons/bilder/l03-zuse-lochstreifen.svg":vD,"../../lessons/bilder/l04-camelcase.svg":yD,"../../lessons/bilder/l04-variable.svg":wD,"../../lessons/bilder/l04-zuweisung.svg":zD,"../../lessons/bilder/l05-tauschen.svg":ID,"../../lessons/bilder/l07-schreibtischtest-de.svg":kD,"../../lessons/bilder/l07-schreibtischtest-en.svg":SD,"../../lessons/bilder/l07-schreibtischtest-pt.svg":TD,"../../lessons/bilder/l08-zahlenstrahl.svg":jD,"../../lessons/bilder/l09-wahrheitstabelle.svg":_D,"../../lessons/bilder/l10-kopfgesteuert.svg":CD,"../../lessons/bilder/l11-vergleich.svg":AD,"../../lessons/bilder/l12-for-ablauf.svg":PD,"../../lessons/bilder/l14-array.svg":OD,"../../lessons/bilder/l20-cpp.svg":MD,"../../lessons/bilder/l20-jvm.svg":ZD,"../../lessons/bilder/margaret-hamilton.jpg":DD,"../../lessons/bilder/mvc-klick.svg":BD,"../../lessons/bilder/pt/aufgabe-mehrwertsteuer.svg":LD,"../../lessons/bilder/pt/kino-saal.svg":WD,"../../lessons/bilder/pt/kino-schleifen.svg":ED,"../../lessons/bilder/pt/l01-pap.svg":ND,"../../lessons/bilder/pt/l02-einfuegen.svg":JD,"../../lessons/bilder/pt/l03-lochkarte-beschriftet.svg":FD,"../../lessons/bilder/pt/l03-lochkarte.svg":RD,"../../lessons/bilder/pt/l04-camelcase.svg":GD,"../../lessons/bilder/pt/l04-variable.svg":HD,"../../lessons/bilder/pt/l04-zuweisung.svg":VD,"../../lessons/bilder/pt/l05-tauschen.svg":QD,"../../lessons/bilder/pt/l08-zahlenstrahl.svg":qD,"../../lessons/bilder/pt/l10-kopfgesteuert.svg":UD,"../../lessons/bilder/pt/l11-vergleich.svg":YD,"../../lessons/bilder/pt/l12-for-ablauf.svg":$D,"../../lessons/bilder/pt/l14-array.svg":XD,"../../lessons/bilder/pt/l20-cpp.svg":KD,"../../lessons/bilder/pt/l20-jvm.svg":eB,"../../lessons/bilder/pt/mvc-klick.svg":tB,"../../lessons/bilder/pt/schiffe-versenken.svg":nB,"../../lessons/bilder/pt/ss-binaere-suche.svg":iB,"../../lessons/bilder/pt/ss-bubblesort.svg":aB,"../../lessons/bilder/pt/ss-lineare-suche.svg":sB,"../../lessons/bilder/pt/ss-vergleiche.svg":rB,"../../lessons/bilder/pt/uebergabe.svg":oB,"../../lessons/bilder/pt/zk-zeichen.svg":lB,"../../lessons/bilder/schiffe-versenken.svg":uB,"../../lessons/bilder/ss-binaere-suche.svg":mB,"../../lessons/bilder/ss-bubblesort.svg":cB,"../../lessons/bilder/ss-lineare-suche.svg":dB,"../../lessons/bilder/ss-vergleiche.svg":hB,"../../lessons/bilder/uebergabe.svg":gB,"../../lessons/bilder/zk-zeichen.svg":pB}),cg=i=>i.replace(/^.*\//,"");function U1(i,e,t){const n=s=>new Map(Object.entries(i).filter(([r])=>{var o;return((o=e.exec(r))==null?void 0:o[1])===s}).map(([r,o])=>[cg(r),o]));return[...new Map([...n("en"),...t==="en"?[]:n(t)])]}function Xu(i){return i==="de"?"de":i==="pt-PT"?"pt":"en"}let S1="en",Ot=[],An=[],Ha="",Va=[],ys="off";function Ku(i){i!==ys&&(ys=i,Ot=[],ws(S1))}function ws(i){var s,r,o;if(A3(i),i===S1&&Ot.length>0)return;S1=i;const e=U1(VB,/\/lessons\/([^/]+)\/[^/]+\.md$/,i),t=(l,u)=>l.filter(([m])=>/^\d+/.test(m)).map(([m,c])=>GB(nm(c,u),`${i}/${m}`)).sort((m,c)=>m.number-c.number),n=(l,u,m)=>l.map(([c,d])=>{const h=HB(nm(d,m),`${i}/${u}${c}`);return m&&h.after!==void 0?{...h,after:m.get(h.after)??h.after}:h}),a=U1(QB,/\/lessons\/([^/]+)\/aufgaben\/[^/]+\.md$/,i);if(ys==="on"){const l=U1($u,/\/lessons\/([^/]+)\/visubot\/[^/]+\.md$/,i),u=XB(tm(e),tm(l)),m=t(e,u.normal),c=h=>{var g;return((g=[...m].reverse().find(f=>u.normal.get(f.number)({...h,number:u.normal.get(h.number)})),...t(l,u.robot).map(h=>{const g=u.robot.get(h.number);return{...h,number:g,section:c(g),robot:!0}})].sort((h,g)=>h.number-g.number);const d=U1(qB,/\/lessons\/([^/]+)\/visubot\/aufgaben\/[^/]+\.md$/,i);An=[...n(a,"aufgaben/",u.normal),...n(d,"visubot/aufgaben/",u.robot).map(h=>({...h,robot:!0}))]}else Ot=t(e),An=n(a,"aufgaben/");An.sort((l,u)=>(l.after??0)-(u.after??0)||l.level-u.level||l.title.localeCompare(u.title,i));for(const l of[...Ot.flatMap(u=>u.steps.flatMap(m=>m.blocks)),...An.flatMap(u=>u.blocks)])l.kind==="textFile"&&N3(l.name,l.content);if(Ha=((s=e.find(([l])=>l==="nachschlagen.md"))==null?void 0:s[1])??"",ys!=="off"){const l=(r=U1($u,/\/lessons\/([^/]+)\/visubot\/[^/]+\.md$/,i).find(([u])=>u==="nachschlagen.md"))==null?void 0:r[1];l&&(Ha=`${Ha.trimEnd()} -${l}`)}Va=hZ(((o=e.find(([l])=>l==="begriffe.md"))==null?void 0:o[1])??"")}const em={1:3,2:5,3:5,4:8,5:11,6:11,7:11,8:11,9:11,10:11,11:11,12:11,13:11,14:11,15:11,16:14,17:15,18:15,19:17,20:17,21:17,22:18},tm=i=>i.map(([e])=>{var t;return Number((t=/^(\d+)/.exec(e))==null?void 0:t[1])}).filter(Number.isFinite).sort((e,t)=>e-t);function UZ(i,e){const t=[...i].reverse().find(o=>o<=19)??i.at(-1)??0,n=o=>i.includes(em[o])?em[o]:t,a=new Map,s=new Map;let r=1;for(const o of i){a.set(o,r++);for(const l of e.filter(u=>n(u)===o))s.set(l,r++)}return{normal:a,robot:s}}function nm(i,e){return e?i.replace(/\b(Lektion(?:en)?|Lessons?|Li[cç](?:ão|ões))(\s+\d+(?:\s*(?:,|bis|und|and|to|a|e|–|-)\s*\d+)*)/gi,(t,n,a)=>n+a.replace(/\d+/g,s=>String(e.get(Number(s))??s))):i}ws("en");function dg(i,e){return S1==="de"?i.get(e)??i.get(`en/${e}`):(S1==="en"?void 0:i.get(`${S1}/${e}`))??i.get(`en/${e}`)??i.get(e)}const hg=(i,e)=>i.slice(i.indexOf(e)+e.length),$Z=new Map(Object.entries(VZ).map(([i,e])=>[hg(i,"/diagramme/"),e]));function si(i){const e=dg($Z,i);return e===void 0?void 0:Hl(e)}const YZ=new Map(Object.entries(QZ).map(([i,e])=>[hg(i,"/bilder/"),e]));function _r(i){return dg(YZ,i)}const XZ=new Map(Object.entries(qZ).map(([i,e])=>[cg(i).replace(/\.txt$/,""),e])),im=new Map;function qa(i){const e=XZ.get(i);if(e===void 0)return;let t=im.get(i);return t||im.set(i,t=ab(e)),t}const gg=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Pe(i){const e=[];let t=gg(i).replace(/`([^`]+)`/g,(n,a)=>(e.push(a),`\0${e.length-1}\0`));return t=t.replace(/\*\*(.+?)\*\*/g,"$1").replace(/(^|[^*])\*([^*\s][^*]*?)\*/g,"$1$2").replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,a,s)=>{const r=/^(https?:|mailto:|#|\.{0,2}\/)/.test(s)?s:"#",o=/^https?:/.test(r)?' target="_blank" rel="noopener noreferrer"':"";return`${a}`}).replace(/\[([^\]]+)\]\{\.(blau|orange|gruen|gelb|rosa)\}/g,'$1').replace(/\[([^\]]+)\]\{(?:teil|part)=([\w,]+)\}/g,'$1'),t.replace(/\u0000(\d+)\u0000/g,(n,a)=>`${e[Number(a)]}`)}function _n(i){const e=[],t=i.replace(/\r\n/g,` +${l}`)}Va=fB(((o=e.find(([l])=>l==="begriffe.md"))==null?void 0:o[1])??"")}const em={1:3,2:5,3:5,4:8,5:11,6:11,7:11,8:11,9:11,10:11,11:11,12:11,13:11,14:11,15:11,16:14,17:15,18:15,19:17,20:17,21:17,22:18},tm=i=>i.map(([e])=>{var t;return Number((t=/^(\d+)/.exec(e))==null?void 0:t[1])}).filter(Number.isFinite).sort((e,t)=>e-t);function XB(i,e){const t=[...i].reverse().find(o=>o<=19)??i.at(-1)??0,n=o=>i.includes(em[o])?em[o]:t,a=new Map,s=new Map;let r=1;for(const o of i){a.set(o,r++);for(const l of e.filter(u=>n(u)===o))s.set(l,r++)}return{normal:a,robot:s}}function nm(i,e){return e?i.replace(/\b(Lektion(?:en)?|Lessons?|Li[cç](?:ão|ões))(\s+\d+(?:\s*(?:,|bis|und|and|to|a|e|–|-)\s*\d+)*)/gi,(t,n,a)=>n+a.replace(/\d+/g,s=>String(e.get(Number(s))??s))):i}ws("en");function dg(i,e){return S1==="de"?i.get(e)??i.get(`en/${e}`):(S1==="en"?void 0:i.get(`${S1}/${e}`))??i.get(`en/${e}`)??i.get(e)}const hg=(i,e)=>i.slice(i.indexOf(e)+e.length),KB=new Map(Object.entries(UB).map(([i,e])=>[hg(i,"/diagramme/"),e]));function si(i){const e=dg(KB,i);return e===void 0?void 0:Hl(e)}const eL=new Map(Object.entries($B).map(([i,e])=>[hg(i,"/bilder/"),e]));function jr(i){return dg(eL,i)}const tL=new Map(Object.entries(YB).map(([i,e])=>[cg(i).replace(/\.txt$/,""),e])),im=new Map;function Qa(i){const e=tL.get(i);if(e===void 0)return;let t=im.get(i);return t||im.set(i,t=ab(e)),t}const gg=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Pe(i){const e=[];let t=gg(i).replace(/`([^`]+)`/g,(n,a)=>(e.push(a),`\0${e.length-1}\0`));return t=t.replace(/\*\*(.+?)\*\*/g,"$1").replace(/(^|[^*])\*([^*\s][^*]*?)\*/g,"$1$2").replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,a,s)=>{const r=/^(https?:|mailto:|#|\.{0,2}\/)/.test(s)?s:"#",o=/^https?:/.test(r)?' target="_blank" rel="noopener noreferrer"':"";return`${a}`}).replace(/\[([^\]]+)\]\{\.(blau|orange|gruen|gelb|rosa)\}/g,'$1').replace(/\[([^\]]+)\]\{(?:teil|part)=([\w,]+)\}/g,'$1'),t.replace(/\u0000(\d+)\u0000/g,(n,a)=>`${e[Number(a)]}`)}function jn(i){const e=[],t=i.replace(/\r\n/g,` `).split(` `);let n=0;for(;n${gg(c.join(` -`))}`);continue}const s=/^(#{2,4})\s+(.*)$/.exec(a);if(s){const o=s[1].length;e.push(`${Pe(s[2])}`),n++;continue}if(/^\s*([-*]|\d+\.)\s+/.test(a)){const o=/^\s*\d+\./.test(a),l=[];for(;n${Pe(u)}`)}e.push(o?`
    ${l.join("")}
`:`
    ${l.join("")}
`);continue}if(a.startsWith("|")&&/^\|?[\s:|-]*-{3,}[\s:|-]*$/.test(t[n+1]??"")){const o=m=>m.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(c=>Pe(c.trim())),l=o(a);n+=2;const u=[];for(;n${l.map(m=>``).join("")}${u.map(m=>`${m.map(c=>``).join("")}`).join("")}
${m}
${c}
`);continue}if(a.startsWith(">")){const o=[];for(;n");)o.push(t[n++].replace(/^>\s?/,""));e.push(`