PageSourceSearch

https://developerakademie.com/wp-content/themes/developerakademie-…/assets/js/landing-bundle.js?ver=1790173532

js developerakademie.com collected 2026-10-02 15:06:18 UTC 54,161 bytes, 178 lines download raw bytes

1const cursorHTML=`<span class="da-hero-cursor da-bg-red-20 da-blinking-cursor"></span>`,securityCursorHTML=`<span class="da-hero-cursor da-bg-red-40 da-security-blinking-cursor"></span>`;function typeInterval(){const e=100*Math.random();return 50>e?10:e}async function type(e,t){if(!1==!foundSecurityUrl)for(let n,s=0;s<t.length;s++){n=t[s];const i=`<span class="da-typed-character">${n}${securityCursorHTML}</span>`;e.insertAdjacentHTML("beforeend",i),await sleep(typeInterval()),s<t.length-1&&e.querySelector(".da-security-blinking-cursor").remove()}else for(let n,s=0;s<t.length;s++){n=t[s];const i=`<span class="da-typed-character">${n}${cursorHTML}</span>`;e.insertAdjacentHTML("beforeend",i),await sleep(typeInterval()),s<t.length-1&&e.querySelector(".da-blinking-cursor").remove()}}async function deleteText(e){const t=Array.from(e.querySelectorAll(".da-typed-character"));for(let n=t.length-1;0<=n;n--)try{t[n-1].insertAdjacentHTML("beforeend",cursorHTML)}catch(e){}finally{t[n].remove(),await sleep(typeInterval())}}async function deleteSecurityText(e){const t=Array.from(e.querySelectorAll(".da-typed-character"));for(let n=t.length-1;0<=n;n--)try{t[n-1].insertAdjacentHTML("beforeend",securityCursorHTML)}catch(e){}finally{t[n].remove(),await sleep(typeInterval())}}async function startHeroAnimation(){if(foundSecurityUrl){const e=document.querySelector(".da-hero-security-headline-end");if(!e)return;for(;;)await type(e,"IT-Security Experte"),await sleep(2e3),await deleteSecurityText(e,"IT-Security Experte"),await type(e," Cloud Engineer"),await sleep(2e3),await deleteSecurityText(e," Cloud Engineer"),await type(e,"DevSecOps Specialist"),await sleep(2e3),await deleteSecurityText(e,"DevSecOps Specialist")}else if(foundUmschulungenUrl){const e=document.querySelector(".da-hero-headline-end");if(!e)return;for(;;)await type(e,"f\xFCr Anwendungsentwicklung"),await sleep(2e3),await deleteText(e,"f\xFCr Anwendungsentwicklung"),await type(e,"in deiner N\xE4he"),await sleep(2e3),await deleteText(e,"in deiner N\xE4he"),await type(e,"in ganz Deutschland"),await sleep(2e3),await deleteText(e,"in ganz Deutschland"),await type(e,"unabh\xE4ngig vom Hintergrund"),await sleep(2e3),await deleteText(e,"unabh\xE4ngig vom Hintergrund"),await type(e,"gestalte Zukunft mit KI"),await sleep(2e3),await deleteText(e,"gestalte Zukunft mit KI"),await type(e,"mit IHK Abschluss"),await sleep(2e3),await deleteText(e,"mit IHK Abschluss")}else if(foundUnsereZukunftUrl){const e=document.querySelector(".da-hero-headline-end");if(!e)return;for(;;)await type(e,"zu deinem Beruf."),await sleep(2e3),await deleteText(e,"zu deinem Beruf."),await type(e,"zu deiner IT-Karriere."),await sleep(2e3),await deleteText(e,"zu deiner IT-Karriere."),await type(e,"zu deinem Neustart."),await sleep(2e3),await deleteText(e,"zu deinem Neustart.")}else{const e=document.querySelector(".da-hero-headline-end");if(!e)return;for(;;)await type(e,"nach deinem Zeitplan"),await sleep(2e3),await deleteText(e,"nach deinem Zeitplan"),await type(e,"100% online"),await sleep(2e3),await deleteText(e,"100% online"),await type(e,"ohne Vorkenntnisse"),await sleep(2e3),await deleteText(e,"ohne Vorkenntnisse"),await type(e,"erschaffe Zukunft"),await sleep(2e3),await deleteText(e,"erschaffe Zukunft")}}const sleep=e=>new Promise(t=>setTimeout(t,e)),duration=2500;function easingFunction(e,t){var n=Math.pow;return 100<=t?n(e,2)*(3-2*e):easeOutQuad(e)}function userPrefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}function easeOutQuad(e){return e*(2-e)}function isInViewport(e){const t=e.getBoundingClientRect();return 0<=t.top&&0<=t.left&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function startCounting(e,t){let n=!1;if(n)return;n=!0;const i=performance.now();requestAnimationFrame(function(n){updateCounter(n,i,e,t)})}function updateCounter(e,t,n,i){var s=Math.min;const a=e-t;let r;if(30<=i)r=s(a/duration,1);else{r=s(a/1000,1)}const l=easingFunction(r,i),o=Math.max(0,Math.floor(l*i));n.innerText=o,1>r&&requestAnimationFrame(function(e){updateCounter(e,t,n,i)})}function addScrollListener(e,t){let n=!1;const i=function(){n||(n=!0,requestAnimationFrame(function(){n=!1,isInViewport(e)&&(startCounting(e,t),window.removeEventListener("scroll",i))}))};window.addEventListener("scroll",i)}
1function initCounters(e){const t=userPrefersReducedMotion();for(let n=0;n<e.length;n++){const{id:i,targetValue:s}=e[n],a=document.getElementById(i);a&&(t?a.innerText=s:(addScrollListener(a,s),isInViewport(a)&&startCounting(a,s)))}}const counterData=[{id:"counter1",targetValue:100},{id:"counter2",targetValue:200},{id:"counter3",targetValue:300}];initCounters(counterData);function createCurriculumPart(e,t){return{text:e,roadMap:t}}function createCurriculumText(e,t,n,i){return{supraTitle:e,title:t,paragraph:n,checkMarks:i}}const htmlTechnology={img:"HTML.svg",name:"HTML"},cssTechnology={img:"CSS.svg",name:"CSS"},webTechnologies=[htmlTechnology,cssTechnology],curriculumWebFaze={title:"Web-Entwicklung",technologies:webTechnologies},javascriptTechnology={img:"JavaScript.svg",name:"JavaScript"},figmaTechnology={img:"Figma.svg",name:"Figma"},projectsAndBusinessTechnologies=[javascriptTechnology,figmaTechnology],projectsAndBusinessFaze={title:"Projekte & Business Apps",technologies:projectsAndBusinessTechnologies},typeScriptTechnology={img:"TypeScript.svg",name:"TypeScript"},angularTechnology={img:"Angular.svg",name:"Angular"},firebaseTechnology={img:"Firebase.svg",name:"Firebase"},scaleAppsTechnologies=[typeScriptTechnology,angularTechnology,firebaseTechnology],scaleAppsFaze={title:"Skalierbare Applikationen",technologies:scaleAppsTechnologies},gitTechnology={img:"Git.svg",name:"Git"},gitHubTechnology={img:"Github.svg",name:"Github"},scrumTechnology={img:"SCRUM.svg",name:"SCRUM"},agileTechnologies=[gitTechnology,gitHubTechnology,scrumTechnology],agileFaze={title:"Agile Softwareentwicklung",technologies:agileTechnologies},frontendRoadMapFazes=[curriculumWebFaze,projectsAndBusinessFaze,scaleAppsFaze,agileFaze],frontendCheckMarks=["Arbeite mit modernsten Technologien","Erhalte individuelles Mentoring & Codereviews","Erlerne ein vollwertiges Berufsbild"],frontendText=createCurriculumText("Deine Basis","Lerne Frontend Entwicklung","Programmiere Webseiten und Web-Apps. Sch\xE4rfe deine F\xE4higkeiten Projekt f\xFCr Projekt: von einfachen Landing-pages bis hin zu komplexen Business Applikationen.",frontendCheckMarks),frontend=createCurriculumPart(frontendText,{fazes:frontendRoadMapFazes}),lmStudio={img:"lm-studio.svg",name:"LM-Studio"},githubCopilot={img:"githubcopilot.svg",name:"Github Copilot"},contextEngineering={img:"context-engineering.svg",name:"Context Engineering"},chatGPTTechnology={img:"ChatGPT.svg",name:"ChatGPT"},prompting={img:"prompting.svg",name:"Prompting"},claudeTechnology={img:"Claude.svg",name:"Claude"},aiTechnology=[lmStudio,githubCopilot,contextEngineering,chatGPTTechnology,prompting,claudeTechnology],curriculumAiCodingFaze={title:"Software bauen mit KI",technologies:aiTechnology},n8n={img:"n8n.svg",name:"N8N workflows"},webhooks={img:"webhooks.svg",name:"Webhooks"},dataTransforming={img:"data-transforming.svg",name:"Datentransformation"},contentCreation={img:"content-creation.svg",name:"Bild- & Textgenerierung"},workflowAndAtuomation=[n8n,webhooks,dataTransforming,contentCreation],curriculumWorkflowFaze={title:"Workflow Automation",technologies:workflowAndAtuomation},aiIntegration={img:"ai-integration.svg",name:"KI-Integration"},aiAgent={img:"ai-agent.svg",name:"KI-Agenten"},rag={img:"rag.svg",name:"RAG"},llmEvals={img:"llm-evals.svg",name:"LLM-Evals"},gemini={img:"gemini.svg",name:"Gemini"},aiWebApss=[aiIntegration,aiAgent,rag,llmEvals,gemini],curriculumAiWebAppsFaze={title:"KI-Webanwendungen",technologies:aiWebApss},aiRoadMapFazes=[curriculumAiCodingFaze,curriculumWorkflowFaze,curriculumAiWebAppsFaze],aiCheckMarks=["Werde produktiver beim Coden mit KI-Tools","Denke Prozesse neu mit Automatisierung"," Integriere KI in Webanwendungen"],aiText=createCurriculumText("Ki & Automation","Werde zum KI Pionier","Entwickle schneller, schreibe besseren Code und automatisiere deine Workflows mit der Power von k\xFCnstlicher Intelligenz.",aiCheckMarks),ai=createCurriculumPart(aiText,{fazes:aiRoadMapFazes}),linuxTechnology={img:"Linux.svg",name:"Linux"},terminalTechnology={img:"Terminal.svg",name:"Terminal"},osTechnologies=[linuxTechnology,terminalTechnology],curriculumOSFaze={title:"Betriebssysteme",technologies:osTechnologies},pythonTechnology={img:"Python.svg",name:"Python"},djangoTechnology={img:"Django.svg",name:"Django"},flaskTechnology={img:"Flask.svg",name:"Flask"},backendTechnologies=[pythonTechnology,djangoTechnology],backendFaze={title:"Backend-Entwicklung",technologies:backendTechnologies},sqlTechnology={img:"SQL.svg",name:"SQLite"},redisTechnology={img:"Redis.svg",name:"Redis"},postgresSQLTechnology={img:"PostgreSQL.svg",name:"PostgreSQL"},databaseTechnologies=[sqlTechnology,redisTechnology,postgresSQLTechnology],databaseFaze={title:"Datenbanken",technologies:databaseTechnologies},dockerTechnology={img:"Docker.svg",name:"Docker"},cloudTechnology={img:"Cloud.svg",name:"Cloud"},herokuTechnology={img:"Heroku.svg",name:"Heroku"},deployAndSecurityTechnologies=[dockerTechnology,cloudTechnology,herokuTechnology],deployAndSecurityFaze={title:"Deployment & Security",technologies:deployAndSecurityTechnologies},backendRoadMapFazes=[curriculumOSFaze,backendFaze,databaseFaze,deployAndSecurityFaze],backendCheckMarks=["Entwickle eigene Fullstack Projekte","Erlerne Deployment in der Cloud","Erh\xF6he deinen Marktwert als Developer"],backendText=createCurriculumText("Fortgeschrittene Konzepte","Lerne Backend Entwicklung","Vervollst\xE4ndige de
1in Profil und werde direkt Fullstack Developer. Aufbauend auf deinem Frontend Wissen wendest du fortgeschrittene Software Engineering Methoden an.",backendCheckMarks),backend=createCurriculumPart(backendText,{fazes:backendRoadMapFazes}),cvTrainingTechnology={img:"File.svg",name:"CV"},jobInterviewTechnology={img:"Chat.svg",name:"Jobinterviews"},cvTrainingTechnologies=[cvTrainingTechnology,jobInterviewTechnology],curriculumCVFaze={title:"Bewerbungstraining",technologies:cvTrainingTechnologies},mindset={img:"mindset.svg",name:"Mindset"},teamwork={img:"teamwork.svg",name:"Teamarbeit"},personalGrowth=[mindset,teamwork],mindsetVisionFaze={title:"Pers\xF6nlichkeitsentwicklung",technologies:personalGrowth},itJobFaze={title:"<span class=\"da-color-gray-60 da-it-job\">IT-Job!</span>"},cvRoadMapFazes=[mindsetVisionFaze,curriculumCVFaze,itJobFaze],cvText=createCurriculumText("Karriere-Training","Einstieg in deine IT-Karriere","Lass dich von uns bis in deinen Job in der IT begleiten. Wir \xFCben Einstellungstests und Vorstellungsgespr\xE4che und unter
1st\xFCtzen dich bei deinen Bewerbungen."),career=createCurriculumPart(cvText,{fazes:cvRoadMapFazes}),kiScaleFaze={title:"Backend & Datenbank",technologies:[firebaseTechnology]},kiWebFaze={title:"Web-Entwicklung",technologies:[htmlTechnology,cssTechnology,javascriptTechnology]},supabase={name:"Supabase"},mcp={name:"MCP"},agenticLoops={name:"Agentic Loops"},agents={img:"ai-agent.svg",name:"Agents"},agentSkills={name:"Agent Skills"},modelRouting={name:"Model Routing"},kiAiCodingFaze={title:"Deine KI-Werkzeuge",technologies:[lmStudio,githubCopilot,claudeTechnology,prompting,contextEngineering,modelRouting]},kiAgenticFaze={title:"Agentische Entwicklung",technologies:[mcp,agenticLoops,agents,agentSkills]},kiWorkflowFaze={title:"Workflow Automation",technologies:[n8n,webhooks,dataTransforming]},kiAiWebAppsFaze={title:"KI-Webanwendungen",technologies:[aiIntegration,aiAgent,rag,llmEvals,gemini,supabase]},kiMod1=createCurriculumPart(createCurriculumText("","Grundlagen & Softwareentwicklung","Du lernst strukturiert zu denken, Probleme zu zerlegen und deine ersten Programme zu schreiben, und baust darauf Oberfl\xE4chen und kleine Apps, die du sp\xE4ter als Bausteine f\xFCr eigene Automatisierungen nutzt.",["Logik, Datenstrukturen & Debugging","HTML, CSS & JavaScript","Eigene Web-Apps & moderne Frameworks"]),{fazes:[kiWebFaze,agileFaze]}),kiModAiCoding=createCurriculumPart(createCurriculumText("","Software bauen mit KI","Du nutzt moderne KI-Tools, um schneller und besser zu programmieren, von intelligenter Code-Vervollst\xE4ndigung \xFCber gezieltes Prompting bis zum sicheren Umgang mit LLMs im Entwicklungsalltag.",["Mit KI-Assistenten produktiver coden","Effektives Prompting & Context Engineering","Agentische Workflows mit MCP, Custom Agents & Hooks bauen"]),{fazes:[kiAiCodingFaze,kiAgenticFaze]}),kiMod4=createCurriculumPart(createCurriculumText("","Prozessanalyse & Automatisierung","Das Herzst\xFCck des Kurses: Du lernst, Abl\xE4ufe zu bewerten, Automatisierungspotenziale zu erkennen und daraus konkrete L\xF6sungen zu entwickeln.",["Prozesse analysieren und dokumentieren","Potenziale erkennen","L\xF6sungen planen","Stakeholder und Anforderungen managen"]),{fazes:[kiWorkflowFaze,kiAiWebAppsFaze]}),kiMod5=createCurriculumPart(createCurriculumText("","Karriere-Training","Kein Kurs-Ende ohne Plan f\xFCrs Berufsleben. Du lernst, dich zu zeigen, dich zu bewerben und im Gespr\xE4ch zu \xFCberzeugen.",["Portfolio aufbauen und pr\xE4sentieren","Gehalt verhandeln","Bewerbungsgespr\xE4che vorbereiten","LinkedIn und Netzwerk nutzen"]),{fazes:[mindsetVisionFaze,curriculumCVFaze,itJobFaze]}),dsBasis=createCurriculumPart(createCurriculumText("PHASE 1","DevSecOps Basis","Erlerne wichtige Grundlagen f\xFCr Linux und Python Programmierung. Richte deinen ersten Server ein, auf dem du deine Projekte sp\xE4ter betreibst.",["Konfiguriere deinen Server nach aktuellen Sicherheitsstandards","Verstehe die Funktionsweise von IT-Systemen & Netzwerken","Lerne die m\xE4chtige Programmiersprache Python"]),{fazes:[{title:"Arbeitsumgebung",technologies:[{name:"Administration"},{name:"Ubuntu Server"},{name:"OpSec"}]},{title:"Technische Grundlagen",technologies:[{name:"Netzwerktechnik"},pythonTechnology,{name:"Web APIs"},{name:"Webanwendungen"}]}]}),dsHacking=createCurriculumPart(createCurriculumText("PHASE 2","Hackinglabor","Richte dir dein Hacking-Labor ein, erlerne wichtige Grundlagen an Praxisprojekten und schmiede deine eigenen Pentesting-Werkzeuge. Durchlaufe alle Phasen eines echten Hacking-Angriffs. Lerne Webanwendungen zu hacken und Schwachstellen mit deinen Pentesting-Werkzeugen zu identifizieren.",["Informationen sammeln und Schwachstellen identifizieren","Sicherheitsl\xFCcken ausnutzen","Lerne wie man ChatGPT im Hacking einsetzt"]),{fazes:[{title:"Laborumgebung",technologies:[{name:"VirtualBox"},{name:"Kali Linux"},{name:"Proxy Chains"}]},{title:"Aufkl\xE4rung & Informationsbeschaffung",technologies:[{name:"Webseitenanalyse"},{name:"Netzwerkanalyse"},{name:"Schwachstellensuche"}]},{title:"Angriffstechniken und Werkzeuge",technologies:[{name:"CVE"},{name:"CVSS"},{name:"XSS"},{name:"SQL Injection"},{name:"Burp Suite"},{name:"sqlmap"},{name:"nmap"},{name:"& mehr..."}]}]}),dsAutomation=createCurriculumPart(createCurriculumText("PHASE 3","Projektautomation","Lerne wie du eine sichere Infrastruktur erstellen kannst, mit Hilfe derer Entwickler automatisiert Software testen und bereitstellen k\xF6nnen.",["Definiere Container-Images","Erstelle Continuous Integration & Delivery Pipelines","Automatisiere Routinen zur Sicherheits\xFCberpr\xFCfung"]),{fazes:[{title:"CI/CD Pipelines",technologies:[{name:"Container"},{name:"YAML"},{name:"Configuration as code"},{name:"Qualit\xE4tssicherung"}]},{title:"Automatisierte Sicherheitsroutinen",technologies:[{name:"Compliance Checks"},{name:"Paket Analyse"},{name:"Schwachstellenscan"}]}]}),dsCareer=createCurriculumPart(createCurriculumText("PHASE 4","Karriereeinstieg","Lerne Schwachstellen professionell zu pr\xE4sentieren und lass dich von uns bis in deinen Job in der IT begleiten. Wir \xFCben Einstellungstests und Vorstellungsgespr\xE4che und unter
1st\xFCtzen dich bei deinen Bewerbungen.",["Dokumentation & Pr\xE4sentation von Schwachstellen","L\xF6sungsvorschl\xE4ge mit Stakeholdern erarbeiten","Vorbereitung auf den Bewerbungsprozess"]),{fazes:[{title:"Vulnerability Reporting",technologies:[{name:"Pentestberichte"},{name:"CVSS bestimmen"},{name:"Pr\xE4sentationstechniken"},{name:"Gegenma\xDFnahmen"}]},{title:"Pers\xF6nlichkeitsentwicklung",technologies:[{name:"Mindset"},{name:"Vision"}]},{title:"Bewerbungstraining",technologies:[{name:"CV"},{name:"Jobinterviews"},{name:"Capture the flag"}]},{title:"IT-Job!"}]}),devsecopsCurriculum=[dsBasis,dsHacking,dsAutomation,dsCareer],curriculum={fazes:window.daFullstackCurriculum?[frontend,ai,backend,career]:window.daKiAutomationCurriculum?[kiMod1,kiModAiCoding,kiMod4,kiMod5]:window.daDevsecopsCurriculum?devsecopsCurriculum:[frontend,ai,backend,career]};function renderCurriculum(){const e=document.getElementById("da-curriculum");e&&(e.innerHTML="",curriculum.fazes.forEach(t=>{e.insertAdjacentHTML("beforeend",generateCurriculumFaze(t))}))}function generateCurriculumFaze(e){return`
2<div class="da-faze">
3    <div class="da-faze-text">
4        <header>
5            ${e.text.supraTitle?`<div class="da-supra-title-big da-color-gray-60">${e.text.supraTitle}</div>`:""}
6            <h2 class="da-title-page da-ignore-margin-top">${e.text.title}</h2>
7        </header>
8        <div class="da-text-big da-spacing-small-margin-bottom">${e.text.paragraph}</div>
9        <div class="da-faze-checkmarks da-text-smaller-line-big da-color-gray-70">
10           ${renderCheckMarks(e.text.checkMarks)}
11        </div>
12    </div>
13    <div class="da-faze-map">
14        ${renderRoadMap(e.roadMap)}
15    </div>
16</div>`}function renderCheckMarks(e){if(!e)return"";let t="";return e.forEach(e=>{t+=generateCheckMarkHTML(e)}),t}function generateCheckMarkHTML(e){return`
17<div class="da-checkmark-contnet">
18    <img width="32" height="32" loading="lazy" decoding="async" src="${TEMPLATE_DIR_URI}/assets/images/checkmark.svg" alt="">
19    ${e}
20</div>
21    `}function renderRoadMap(e){let t="";return e.fazes.forEach(e=>{t+=e.technologies?generateRoadMapFazeHTML(e):generateRoadMapWithoutTechsFazeHTML(e)}),t}function generateRoadMapFazeHTML(e){return`
22   <div class="da-faze-part">
23    <div class="da-faze-title da-title-smaller-line-small da-spacing-smaller-margin-bottom">
24        <img width="${e.title.includes("IT-Job!")?20:12}" height="${e.title.includes("IT-Job!")?20:12}" loading="lazy" decoding="async" class="da-empty-ellipse ${e.title.includes("IT-Job!")?"da-empty-flag":""}" src="${TEMPLATE_DIR_URI}/assets/images/${e.title.includes("IT-Job!")?"Flag.svg":window.daDevsecopsCurriculum?"security/EllipseEmptyDark.svg":"EllipseEmpty.svg"}" alt="">
25        ${e.title}
26    </div>
27    <div class="da-faze-technologies da-spacing-between-columns-bottom">
28        ${renderTechnologies(e.technologies)}
29    </div>
30   </div>
31    `}function generateRoadMapWithoutTechsFazeHTML(e){return`
32    <div class="da-faze-part">
33    <div class="da-faze-title da-title-smaller-line-small ${e.title.includes("IT-Job!")?"":"da-spacing-smaller-margin-bottom"}">
34        <img width="12" height="12" class="da-empty-ellipse ${e.title.includes("IT-Job!")?"da-empty-flag":""}" src="${TEMPLATE_DIR_URI}/assets/images/${e.title.includes("IT-Job!")?"Flag.svg":window.daDevsecopsCurriculum?"security/EllipseEmptyDark.svg":"EllipseEmpty.svg"}" alt="">
35        ${e.title}
36    </div>
37   </div>
38    `}function renderTechnologies(e){let t="";return e?.forEach(e=>t+=generateTechnologyHTML(e)),t}function generateTechnologyHTML(e){const t=e.img?`<img width="20" height="20" loading="lazy" decoding="async" src="${TEMPLATE_DIR_URI}/assets/images/${e.img}" alt="">`:"";return`
39        <div class="da-technology">
40            ${t}
41            <div style="letter-spacing: 0 !important;" class="da-supra-title-medium-slim da-color-gray-60 da-ignore-uppercase da-white-space-nowrap">${e.name}</div>
42        </div>
43    `}function createCurvePaths(){var e=Math.abs;if(800<window.innerWidth){const t=document.querySelectorAll(".da-faze");if(3>t.length)return;const n=t[0],i=t[1],s=t[2],a=t[3];if(!n||!i||!s)return;const r=n.querySelectorAll(".da-empty-ellipse"),l=i.querySelectorAll(".da-empty-ellipse"),o=s.querySelectorAll(".da-empty-ellipse"),d=a?.querySelectorAll(".da-empty-ellipse")||[],c=r[r.length-1].getBoundingClientRect(),g=l[0].getBoundingClientRect(),u=l[l.length-1].getBoundingClientRect(),m=o[0].getBoundingClientRect(),h=o[o.length-1].getBoundingClientRect(),p=d[0]?.getBoundingClientRect();{const e=c.x-g.x+1.5,t=g.y-c.y;i.querySelector(".da-faze-map").querySelector("svg.curve-line")?.remove(),i.querySelector(".da-faze-map").insertAdjacentHTML("afterbegin",`
44            <svg class="curve-line"
45                style="position: absolute; z-index: -1; top: -${t-12}px; left: 1px;"
46                width="${e}" height="${t}"
47                viewBox="0 0 ${e} ${t}" fill="none" xmlns="http://www.w3.org/2000/svg">
48                <path d="M${.9983388704318937*e}
49                    0C${.9983388704318937*e}
50                    ${.9017241379310345*t}
51                    0 ${.1620689655172414*t}
52                    0 ${t}"
53                    stroke="#FED1CD" stroke-width="1.5"/>
54                <path class="curveline"
55                    d="M${.9983388704318937*e}
56                    0C${.9983388704318937*e}
57                    ${.9017241379310345*t}
58                    0 ${.1620689655172414*t}
59                    0 ${t}"
60                    stroke="#FD8A81" stroke-width="1.5"/>
61            </svg>`)}{const e=m.x-u.x+2,t=m.y-u.y,n=`
62            <svg class="curve-line"
63                style="position: absolute; z-index: -1; top: -${t-12}px; left: -${e-2}px;"
64                width="${e}" height="${t}"
65                viewBox="0 0 ${e} ${t}" fill="none" xmlns="http://www.w3.org/2000/svg">
66                <path d="M0 0C0 ${t*(860<window.innerWidth?.9299034482758621:1)}
67                    ${.9983388704318937*e}
68                   ${t*(900<window.innerWidth?.1358834482758621:.4)}
69                    ${.9983388704318937*e}
70                    ${t}"
71                    stroke="#FED1CD" stroke-width="1.5"/>
72                <path class="curveline"
73                    id="hallo"
74                    d="M0 0C0 ${t*(860<window.innerWidth?.9299034482758621:1)}
75                    ${.9983388704318937*e}
76                    ${t*(900<window.innerWidth?.1358834482758621:.4)}
77                    ${.9983388704318937*e}
78                    ${t}"
79                    stroke="#FD8A81" stroke-width="1.5"/>
80            </svg>`;s.querySelector(".da-faze-map").querySelector("svg.curve-line")?.remove(),s.querySelector(".da-faze-map").insertAdjacentHTML("afterbegin",n)}if(0<d.length){const t=e(p.x-h.x)+1.5,n=e(p.y-h.y);a.querySelector(".da-faze-map").querySelector("svg.curve-line")?.remove(),a.querySelector(".da-faze-map").insertAdjacentHTML("afterbegin",`
81            <svg class="curve-line"
82                style="position: absolute; z-index: -1; top: -${n-12}px; left: 1px;"
83                width="${t}" height="${n}"
84                viewBox="0 0 ${t} ${n}" fill="none" xmlns="http://www.w3.org/2000/svg">
85                <path d="M${.9983388704318937*t}
86                    0 C${.9983388704318937*t}
87                    ${.88*n}
88                    0 ${.2*n}
89                    0 ${n}"
90                    stroke="#FED1CD" stroke-width="1.5"/>
91                <path class="curveline"
92                    d="M${.9983388704318937*t}
93                    0 C${.9983388704318937*t}
94                    ${.88*n}
95                    0 ${.2*n}
96                    0 ${n}"
97                    stroke="#FD8A81" stroke-width="1.5"/>
98            </svg>`)}}else document.querySelectorAll("svg.curve-line").forEach(e=>e?.remove())}function createStraitPaths(){const e=document.querySelectorAll(".da-faze-map");e.forEach((t,n)=>{const i=t.querySelectorAll(".da-empty-ellipse"),s=n==e.length-1?8:0;connectEllipses(i[0],i[i.length-1],t,s)})}function connectEllipses(e,t,n,i){const s=t.getBoundingClientRect().y-e.getBoundingClientRect().y-i;n.querySelector("svg.strait-line")?.remove(),n.insertAdjacentHTML("afterbegin",generateHorizontalLine(2,s))}function generateHorizontalLine(e,t){return`
99    <svg class="strait-line" style="position: absolute; top: 10px;" class="da-strait-line" width="${e}" height="${t}" viewBox="0 0 ${e} ${t}" fill="none" xmlns="http://www.w3.org/2000/svg">
100        <path d="M${.50001*e} 0L${.50001*e} ${t}" stroke="#FED1CD" stroke-width="1.5"/>
101        <path class="straitline" d="M${.50001*e} 0L${.50001*e} ${t}" stroke="#FD8A81" stroke-width="1.5"/>
102    </svg>`}let straitPathsTicking=!1;window.addEventListener("scroll",()=>{straitPathsTicking||(straitPathsTicking=!0,requestAnimationFrame(()=>{animatePath(),straitPathsTicking=!1}))},{passive:!0});function animatePath(){changePath(),changeCurvedPaths(),changePoints(),changeFlag(),changeItJob()}function changePath(){const e=document.querySelectorAll(".straitline");e.forEach(e=>{const t=e.getTotalLength();e.style.strokeDasharray=t,e.style.strokeDashoffset=t;const n=.618*window.innerHeight-e.getBoundingClientRect().top;e.style.strokeDashoffset=t-n,.618*window.innerHeight>e.getBoundingClientRect().top+t&&(e.style.strokeDashoffset=0),.618*window.innerHeight<e.getBoundingClientRect().top&&(e.style.strokeDashoffset=t)})}function changePoints(){const e=window.daDevsecopsCurriculum||document.body.classList.contains("da-page-dark"),t=e?"security/EllipseFilledDark.svg":"EllipseFilled.svg",n=e?"security/EllipseEmptyDark.svg":"EllipseEmpty.svg",i=document.querySelectorAll(".da-empty-ellipse");i.forEach(e=>{e.classList.contains("da-empty-flag")||(.618*window.innerHeight>e.getBoundingClientRect().top?e.src=`${TEMPLATE_DIR_URI}/assets/images/${t}`:e.src=`${TEMPLATE_DIR_URI}/assets/images/${n}`)})}function changeFlag(){const e=document.querySelectorAll(".da-empty-flag");e.forEach(e=>{e.src=.618*window.innerHeight>e.getBoundingClientRect().top?`${TEMPLATE_DIR_URI}/assets/images/FilledFlag.svg`:`${TEMPLATE_DIR_URI}/assets/images/Flag.svg`})}function changeItJob(){const e=document.querySelectorAll(".da-it-job");e.forEach(e=>{e.style.color=.618*window.innerHeight>e.getBoundingClientRect().top?"#fd5b4f":"#5a717a"})}function createVerticalPathsBetweenFaze(){if(800<window.innerWidth){const e=document.querySelectorAll(".da-faze");for(let t=1;t<e.length;t++){const n=e[t-1].querySelectorAll(".da-empty-ellipse"),i=e[t].querySelectorAll(".da-empty-ellipse");if(!n.length||!i.length)continue;const s=n[n.length-1].getBoundingClientRect(),a=i[0].getBoundingClientRect(),r=Math.abs(s.x-a.x)+2,l=a.y-s.y,o=e[t].querySelector(".da-faze-map");o.querySelector("svg.curve-line")?.remove(),o.insertAdjacentHTML("afterbegin",`
103            <svg class="curve-line" style="position: absolute; z-index: -1; top: -${l-20}px; left: 0px;" width="${r}" height="${l}" viewBox="0 0 ${r} ${l}" fill="none" xmlns="http://www.w3.org/2000/svg">
104                <path d="M${.50001*r} 0L${.50001*r} ${l}" stroke="#FED1CD" stroke-width="1.5"/>
105                <path class="straitline" d="M${.50001*r} 0L${.50001*r} ${l}" stroke="#FD8A81" stroke-width="1.5"/>
106            </svg>`)}}
106else document.querySelectorAll("svg.curve-line").forEach(e=>e?.remove())}function changeCurvedPaths(){const e=document.querySelectorAll(".curveline");e.forEach(e=>{const t=e.getTotalLength();e.style.strokeDasharray=t,e.style.strokeDashoffset=t;const n=e.getBoundingClientRect().bottom-e.getBoundingClientRect().top,i=(.618*window.innerHeight-e.getBoundingClientRect().top)*(t/n);e.style.strokeDashoffset=t-i,.618*window.innerHeight>e.getBoundingClientRect().top+n&&(e.style.strokeDashoffset=0),.618*window.innerHeight<e.getBoundingClientRect().top&&(e.style.strokeDashoffset=t)})}const alumni0Title={firstName:"Matthias",lastName:"",job:"Student"},alumni0Target={title:"Ausgangslage",text:"Matthias hat vor seiner Weiterbildung bei der Developer Akademie Biologie studiert. Durch seine Leidenschaft f\xFCr das Thema Gaming hat er immer mehr Interesse f\xFCr die IT entwickelt."},alumni0InitialPosition={title:"Ziel",text:"Mit dem Ziel vor Augen, in seinen Traumjob als Softwareentwickler einsteigen zu k\xF6nnen, hat Matthias den Quereinstieg gewagt und hat dabei eine F\xE4higkeit gelernt, die in der heutigen Berufswelt nicht mehr wegzudenken ist."},alumni0Result={title:"Ergebnis",text:"Innerhalb von 7 Monaten, mit intensivem Lernen, hat Matthias es bei der Developer Akademie geschafft, unter mehreren Angeboten seinen Traumjob als Frontend-Entwickler zu bekommen. Nebenberuflich bringt er seine Programmierkenntnisse mit unserem Backend-Kurs auf ein neues Level."},alumni0Video={url:"62lydkhlqy",title:"",videoStillTimeIndex:0},alumni0Img={image:"assets/images/[email protected]"},alumni0={title:alumni0Title,texts:[alumni0Target,alumni0Result,alumni0InitialPosition],video:alumni0Video,image:alumni0Img},alumni1Title={firstName:"Georg",lastName:"",job:"Meister Feinwerkmechaniker"},alumni1Target={title:"Ausgangslage",text:"Georg arbeitete vor seinem Quereinstieg in die IT als Feinwerkmechaniker. In seiner Freizeit hat er gelegentlich die ein oder andere Webseite gebaut und sich bereits mit dem Thema Programmieren besch\xE4ftigt."},alumni1InitialPosition={title:"Ziel",text:"Vom Handwerk in die Softwareentwicklung: Georg wollte seine Leidenschaft zum Beruf machen, damit er in einem flexiblen Job mit reichlich Zukunftsperspektiven wechseln kann und sein Potenzial entfesseln kann."},alumni1Result={title:"Ergebnis",text:"Georg hat angefangen nebenberuflich Programmieren zu lernen und ist jetzt Frontend-Entwickler. Seinen neuen Job in der N\xE4he von Stuttgart konnte er sich unter mehreren Angebote aussuchen."},alumni1Video={url:"28r84h5zx7",title:"",videoStillTimeIndex:11},alumni1Img={image:"assets/images/[email protected]"},alumni1={title:alumni1Title,texts:[alumni1Target,alumni1Result,alumni1InitialPosition],video:alumni1Video,image:alumni1Img},alumni2Title={firstName:"Marco",lastName:"",job:"Musiker"},alumni2Target={title:"Ausgangslage",text:"Marco war vor unserer Weiterbildung selbst\xE4ndiger Musiker. Nebenbei hat er schon eigene Projekte programmiert und sich mit IT auseinandergesetzt."},alumni2InitialPosition={title:"Ziel",text:"Marco wollte sein Potenzial weiter aussch\xF6pfen und neues Wissen erlernen. Er hat es geschafft, einen sicheren Job zu finden, in dem er sich st\xE4ndig weiterentwickeln kann und mit den neuesten Technologien arbeitet."},alumni2Result={title:"Ergebnis",text:"In nur einem halben Jahr hat Marco mithilfe der Developer Akademie in Vollzeit seinen Traum verwirklicht und arbeitet jetzt als Softwareentwickler in K\xF6ln."},alumni2Video={url:"t1z22ysrs7",title:"",videoStillTimeIndex:0},alumni2Img={image:"assets/images/[email protected]"},alumni2={title:alumni2Title,texts:[alumni2Target,alumni2Result,alumni2InitialPosition],video:alumni2Video,image:alumni2Img},alumni3Title={firstName:"Robert",lastName:"Toma",job:"K\xFCchenchef"},alumni3Target={title:"Ausgangslage",text:"Robert hat vor seinem Quereinstieg in die IT als K\xFCchenchef gearbeitet. Alles um das Thema IT und Innovation hat ihn schon immer interessiert."},alumni3InitialPosition={title:"Ziel",text:"Robert hat seine Leidenschaft in der Programmierung gefunden und wollte t\xE4glich mit den neuesten Technologien arbeiten. Sein Ziel hat er nach der Weiterbildung mit gro\xDFer Freude erreicht."},alumni3Result={title:"Ergebnis",text:"Innerhalb eines Jahres hat Robert es nebenberuflich geschafft, sich mithilfe der Developer Akademie zum Frontend-Entwickler weiterzuentwickeln. Er konnte sich seinen ersten Job unter mehreren Angeboten aussuchen."},alumni3Video={url:"jp1hitowci",title:"",videoStillTimeIndex:0},alumni3Img={image:"assets/images/[email protected]"},alumni3={title:alumni3Title,texts:[alumni3Target,alumni3Result,alumni3InitialPosition],video:alumni3Video,image:alumni3Img},alumnis=[alumni0,alumni1,alumni2,alumni3];function initAlumins(){return Promise.resolve()}function renderAlumins(){const e=document.getElementById("da-alumbis-view");e&&(e.innerHTML="",alumnis.forEach(t=>e.insertAdjacentHTML("beforeend",generateAlumniView(t))),e.querySelector(".da-alumni-fixed-navigator")?.remove(),e.insertAdjacentHTML("beforeend",generateAlumniFixedNavigator(alumnis[currentAlumni]
106)))}function updateAlumnis(){const e=document.getElementById("da-alumbis-view"),t=e.querySelectorAll(".da-alumni");for(let e=0;e<t.length;e++){const n=t[e];updateAlumniHTML(n,e)}}function updateAlumniHTML(e,t){currentAlumni==t?e.classList.remove("da-d-none"):e.classList.add("da-d-none")}function handleKey(e,t){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),toggleAlumnis(t))}function handleKey(e,t){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),toggleAlumnis(t))}let currentAlumni=0;function generateAlumniView(e){return`
107    <div id="da-alumni${alumnis.indexOf(e)}" class="da-alumni da-flex-spacing-between-columns ${currentAlumni==alumnis.indexOf(e)?"":"da-d-none"}">
108
109        ${!e.video.url?"":generateAlumniVideo(e)}
110
111        <div class="da-alumni-text">
112            <header class="da-spacing-between-columns-bottom">
113                <h2 class="da-title-block da-ignore-margin">${e.title.firstName}</h2>
114                <div class="da-text-header da-color-gray-60 da-ignore-margin">${e.title.job}</div>
115            </header>
116            ${renderAlumniTexts(e.texts)}
117            <div class="da-alumni-navigation">
118                <div class="da-alumni-counter da-color-red-40">
119                    <span class="da-alumni-counter-nr">0${alumnis.indexOf(e)+1}</span>
120                    <div class="da-flex-1-desktop da-counter-progress"
121                        style="background: linear-gradient(to right, var(--red-40) 0%, var(--red-40) ${100*((alumnis.indexOf(e)+1)/alumnis.length)}%, var(--gray-20) ${100*((alumnis.indexOf(e)+1)/alumnis.length)}%, var(--gray-20) ${100*(100-(alumnis.indexOf(e)+1)/alumnis.length)}%)">
122                    </div>
123                    <span class="da-alumni-counter-nr ${alumnis.indexOf(e)+1<alumnis.length?"da-color-gray-40":""}">0${alumnis.length}</span>
124                </div>
125
126                <div class="da-alumni-nav-buttons">
127                    <a class="da-ignore da-rotate-180 ${0==alumnis.indexOf(e)?"da-disabled":""}" onclick="toggleAlumnis('prev')" tabindex="0" onkeydown="handleKey(event, 'prev')"></a>
128                    <a class="da-ignore ${alumnis.indexOf(e)==alumnis.length-1?"da-disabled":""}" onclick="toggleAlumnis('next')" tabindex="0" onkeydown="handleKey(event, 'next')"></a>
129                </div>
130            </div>
131        </div>
132    </div>
133    `}function generateAlumniVideo(e){return`
134    <a class="da-video-content" onclick="playVideo('${e.video.url}')">
135        <img width="560" height="560" class="da-video-img" loading="lazy" decoding="async" srcset="${TEMPLATE_DIR_URI}/assets/images/${e.title.firstName}@2x.webp 2x, ${TEMPLATE_DIR_URI}/assets/images/${e.title.firstName}@3x.webp 3x" src="${TEMPLATE_DIR_URI}/assets/images/${e.title.firstName}@1x.webp" alt="Profilbild von ${e.title.firstName}">
136
137        <div style="position: fixed;">
138            <span class="wistia_embed wistia_async_${e.video.url} popover=true popoverAnimateThumbnail=true" style="display:inline-block;height:84px;position:relative;width:150px">&nbsp;</span>
139        </div>
140
141        ${window.daVideoPrivacyHint||""}
142
143        <div class="da-video-title-container">
144            <div class="da-video-play-btn">
145                <svg class="da-play-btn-bg" width="100" height="96" viewBox="0 0 100 96" fill="none"
146                    xmlns="http://www.w3.org/2000/svg">
147                    <path fill-rule="evenodd" clip-rule="evenodd"
148                        d="M50.6518 9.36871e-05C71.9925 0.0390544 92.6443 12.3527 98.6921 33.6527C104.349 53.5756 90.7987 72.0656 74.5326 84.1069C58.8915 95.6857 38.679 101.012 22.7443 89.8749C5.00192 77.4747 -4.48211 54.6413 2.08993 33.4763C8.69092 12.2181 29.1859 -0.0390956 50.6518 9.36871e-05Z"/>
149                </svg>
150
151                <svg style="position: relative;" width="28" height="34" viewBox="0 0 28 34" fill="none" xmlns="http://www.w3.org/2000/svg">
152                    <path
153                        d="M4.94363 1.26734C2.94646 -0.00358963 0.333008 1.43105 0.333008 3.79832V30.2016C0.333008 32.5689 2.94646 34.0035 4.94363 32.7326L25.6891 19.531C27.5416 18.3521 27.5416 15.6478 25.6891 14.469L4.94363 1.26734Z"
154                        fill="white" />
155                </svg>
156            </div>
157            <span class="da-video-title da-color-white da-title-smaller">${e.video.title}</span>
158        </div>
159    </a>
160	`}function toggleAlumnis(e){"prev"==e&&0<currentAlumni&&currentAlumni--,"next"==e&&currentAlumni<alumnis.length-1&&currentAlumni++,updateAlumnis(),updateAlumniFixedNavigator(),setTimeout(()=>{window.scrollTo({top:alumnisView.offsetTop,behavior:"smooth"})},300)}function renderAlumniTexts(e){let t="";return e.forEach(e=>t+=generateAlumniText(e)),t}function generateAlumniText(e){return`
161   <div class="da-spacing-small-margin-bottom">
162    <h3 class="da-supra-title-small">${e.title}</h3>
163    <div class="da-color-gray-70 da-text-header da-ignore-margin">${e.text}</div>
164   </div>
165    `}let elapsedTime,startTime,touchstartX=0,touchstartY=0,touchendX=0,touchendY=0,allowedTime=300;const alumnisView=document.getElementById("da-alumbis-view");alumnisView?.addEventListener("touchstart",function(e){touchstartX=e.changedTouches[0].screenX,touchstartY=e.changedTouches[0].screenY,startTime=new Date().getTime()},{passive:!0}),alumnisView?.addEventListener("touchend",function(e){var t=Math.abs;touchendX=e.changedTouches[0].screenX,touchendY=e.changedTouches[0].screenY,elapsedTime=new Date().getTime()-startTime;const n=touchendX-touchstartX,i=touchendY-touchstartY;if(t(n)>t(i)&&t(n)>.25*window.innerWidth&&elapsedTime<=allowedTime&&100>t(i)){const e=0>n?"next":"prev";toggleAlumnis(e)}},{passive:!0});function generateAlumniFixedNavigator(e){return`
166        <div id="da-alumni-fixed-navigator" class="da-alumni-navigation da-alumni-fixed-navigator da-container ${fixedNavigationVisible?"":"da-d-none"}">
167        <div class="da-alumni-counter da-color-red-40">
168            <span class="da-alumni-counter-nr">0${alumnis.indexOf(e)+1}</span>
169            <div class="da-flex-1-desktop da-counter-progress"
170                style="background: linear-gradient(to right, var(--red-40) 0%, var(--red-40) ${100*((alumnis.indexOf(e)+1)/alumnis.length)}%, var(--gray-20) ${100*((alumnis.indexOf(e)+1)/alumnis.length)}%, var(--gray-20) ${100*(100-(alumnis.indexOf(e)+1)/alumnis.length)}%)"></div>
171            <span class="da-alumni-counter-nr ${alumnis.indexOf(e)+1<alumnis.length?"da-color-gray-40":""}">0${alumnis.length}</span>
172        </div>
173
174        <div class="da-alumni-nav-buttons">
175            <a class="da-fixed-toggle-alumni da-ignore da-rotate-180 ${0<currentAlumni?"":"da-disabled"}" onclick="toggleAlumnis('prev')" tabindex="0" onkeydown="handleKey(event, 'prev')"></a>
176            <a class="da-fixed-toggle-alumni da-ignore ${currentAlumni<alumnis.length-1?"":"da-disabled"}" onclick="toggleAlumnis('next')" tabindex="0" onkeydown="handleKey(event, 'next')"></a>
177        </div>
178    </div>`}function updateAlumniFixedNavigator(){const e=document.getElementById("da-alumni-fixed-navigator"),t=e.querySelectorAll(".da-alumni-counter-nr"),n=e.querySelectorAll(".da-alumni-counter-nr")[0],i=e.querySelectorAll(".da-alumni-counter-nr")[1];n.innerHTML=`0${currentAlumni+1}`,currentAlumni+1<alumnis.length?i.classList.add("da-color-gray-40"):i.classList.remove("da-color-gray-40");const s=e.querySelector(".da-counter-progress");s.style=`background: linear-gradient(to right, var(--red-40) 0%, var(--red-40) ${100*((currentAlumni+1)/alumnis.length)}%, var(--gray-20) ${100*((currentAlumni+1)/alumnis.length)}%, var(--gray-20) ${100*(100-(currentAlumni+1)/alumnis.length)}%)`;const a=1,r=e.querySelectorAll(".da-fixed-toggle-alumni");0<currentAlumni?r[0].classList.remove("da-disabled"):r[0].classList.add("da-disabled"),currentAlumni<alumnis.length-1?r[a].classList.remove("da-disabled"):r[a].classList.add("da-disabled")}let fixedNavigationVisible=!1;function toggleAlumnisNavigator(e){e&&(fixedNavigationVisible=canShowFixedNavigation(e),fixedNavigationVisible?e?.querySelector(".da-alumni-fixed-navigator")?.classList.remove("da-d-none"):e?.querySelector(".da-alumni-fixed-navigator")?.classList.add("da-d-none"))}function canShowFixedNavigation(e){const t=e?.getBoundingClientRect(),n=e?.querySelectorAll(".da-alumni-navigation")[currentAlumni]?.getBoundingClientRect();return!!e&&800>=window.innerWidth&&0>=t?.y-16&&t?.bottom>window.innerHeight&&t?.height>window.innerHeight&&!(0<n?.y&&n?.bottom<window.innerHeight)}let alumnisNavTicking=!1;window.addEventListener("scroll",()=>
178{alumnisNavTicking||(alumnisNavTicking=!0,requestAnimationFrame(()=>{toggleAlumnisNavigator(document.getElementById("da-alumbis-view")),alumnisNavTicking=!1}))},{passive:!0});function wistiaShowPopover(e){try{return e&&e.popover&&"function"==typeof e.popover.show&&e.popover.show(),e&&"function"==typeof e.play&&e.play(),!0}catch(t){return!1}}window.addEventListener("unhandledrejection",function(t){var e=t.reason;(e===void 0||"undefined"!=typeof MediaError&&e instanceof MediaError)&&t.preventDefault()});function loadWistiaExternal(){if(!window.Wistia&&!document.querySelector("script[src*=\"E-v1.js\"]")){var e=document.createElement("script");e.src="https://fast.wistia.com/assets/external/E-v1.js",document.head.appendChild(e)}}function ensureWistiaEmbed(e){if(e&&!document.querySelector(".wistia_async_"+e+"[data-da-popover=\"1\"]")){var t=document.createElement("div");t.style.cssText="position:fixed;visibility:hidden;",t.innerHTML="<span class=\"wistia_embed wistia_async_"+e+" popover=true popoverAnimateThumbnail=true popoverBorderRadius=8\" data-da-popover=\"1\" style=\"display:inline-block;height:84px;position:relative;width:150px\">&nbsp;</span>",document.body.appendChild(t);var n=document.createElement("script");n.src="https://fast.wistia.com/embed/medias/"+e+".jsonp",document.head.appendChild(n)}}function playVideoResponsive(e,t){var n=t&&window.matchMedia("(max-width: 768px)").matches?t:e;playVideo(n)}function playVideo(e){try{window.daHasConsent&&window.daHasConsent("functional")||sessionStorage.setItem("da_wistia_twoclick","1")}catch(t){}if(window.Wistia){var t=window.Wistia.api(e);if(t&&wistiaShowPopover(t))return}ensureWistiaEmbed(e),window._wq=window._wq||[],window._wq.push({id:e,onReady:function(e){wistiaShowPopover(e)}}),loadWistiaExternal()}function preloadWistiaCards(){if(window.__wistiaPreloaded)return!1;window.__wistiaPreloaded=!0;var e=document.querySelectorAll(".video-card-clickable[data-wistia-id]");if(!e.length)return!1;loadWistiaExternal();var t=window.matchMedia("(max-width: 768px)").matches;return e.forEach(function(e){var n=e.getAttribute("data-wistia-id"),i=e.getAttribute("data-wistia-id-mobile"),s=i&&t?i:n;ensureWistiaEmbed(s)}),!0}function scheduleWistiaPreload(){return"loading"===document.readyState?void document.addEventListener("DOMContentLoaded",scheduleWistiaPreload):void(!document.querySelector(".video-card-clickable[data-wistia-id]")||(window.daOnConsent?window.daOnConsent("functional",preloadWistiaCards):console.warn("[DA] daOnConsent fehlt (template-parts/tracking-head.php nicht eingebunden): Wistia wird nur per Play-Klick geladen.")))}scheduleWistiaPreload();var workspaces=["00_ISO gruppe.svg","01_Allianz.svg","02_Awetha.svg","03_Birkle.svg","04_Codestryke.svg","05_Crafts unfolded.svg","06_datatics.svg","07_Doctra.svg","08_Enio.svg","09_Fit retail.svg","10_Hypoport.svg","11_IPI.svg","12_Kpmg.svg","13_Mach.svg","14_Novafon.svg","15_Robco.svg","16_Schleupen.svg","17_Sellerpoint.svg","18_Siemens.svg","19_ifm.svg","20_Buhl.svg","21_Workbase.svg","22_Scheer PAS Blau.svg","23_Abscale Blau.svg","24_Adesso Blau.svg","25_Datatactics Blau.svg","26_Datenwerk Blau.svg","27_EYSolutions Blau.svg","28_Fabasoft Blau.svg","29_Futurelab Schwarz.svg","30_Hob by horse Blau.svg","31_ITB.svg","32_Kemweb Blau.svg","33_Skriptfabrik Blau.svg","34_Syncpilot Blau.svg","35_TAP.DE Blau.svg","36_Thanera Blau.svg","37_Wekdigital Blau.svg","38_Jatosha.svg","39_Eurowings Blau.svg","40_Sportec blau.svg","41_Kamasys blau.svg","42_Accenture.svg"],workplacesRendered=!1;function renderWorkplaces(){if(!workplacesRendered){workplacesRendered=!0;for(var e,t=document.querySelectorAll(".da-overview-logos .da-logos"),n=0;n<t.length;n++)e=t[n],workspaces.forEach(function(t){e.insertAdjacentHTML("beforeend",generateLogoHTML(t))});var s=function(){for(var e=0;e<t.length;e++)t[e].classList.add("is-ready")},a=t[0]&&t[0].querySelector("img");a&&!a.complete?(a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})):s()}}function generateLogoHTML(e){return"<img class=\"max-w-none\" width=\"150\" height=\"30\" loading=\"lazy\" decoding=\"async\" src=\""+TEMPLATE_DIR_URI+"/assets/images/workplaces/"+e+"\" alt=\"logos of partners\">"}function initWorkplacesObserver(){for(var e=null,t=document.querySelectorAll(".da-overview-logos"),n=0;n<t.length;n++)if(t[n].querySelector(".da-logos")){e=t[n];break}if(e){if(!("IntersectionObserver"in window))return void renderWorkplaces();var s=new IntersectionObserver(function(e){e[0].isIntersecting&&(renderWorkplaces(),s.disconnect())},{rootMargin:"200px"});s.observe(e)}}(function(){"use strict";function e(){return"function"==typeof window.daHasConsent&&window.daHasConsent(g)}function t(e){const t=e||document;let n=0;return t.querySelectorAll("iframe.da-consent-embed[data-embed-src]").forEach(e
178=>{!e.getAttribute("src")&&e.dataset.embedSrc&&(e.loading="eager",e.src=e.dataset.embedSrc,e.style.display="",n++)}),t.querySelectorAll(".da-embed-consent").forEach(e=>e.remove()),0<n}function n(){"function"==typeof window.daMarkConsentUsed&&window.daMarkConsentUsed(g)}function i(){function i(i){const s=document.getElementById("modal-sticky-header"),a=document.createElement("div");if(a.innerHTML=i,s){const e=a.querySelector(".modal-podcast-title");e?(s.innerHTML=e.outerHTML,e.remove()):s.innerHTML=""}c.innerHTML=a.innerHTML,e()&&t(c)&&n(),l.style.display="flex",l.classList.remove("closing"),setTimeout(()=>{g?.focus()},100),document.body.style.overflow="hidden",r(l)}function a(){l.classList.add("closing"),setTimeout(()=>{l.style.display="none",l.classList.remove("closing"),c.innerHTML="";const e=document.getElementById("modal-sticky-header");e&&(e.innerHTML=""),document.body.style.overflow="",m&&m.focus()},200)}function r(e){const t=e.querySelectorAll("button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])"),n=t[0],i=t[t.length-1];e.addEventListener("keydown",function(t){"Tab"!==t.key||(t.shiftKey?document.activeElement===n&&(t.preventDefault(),i.focus()):document.activeElement===i&&(t.preventDefault(),n.focus()))})}const l=document.getElementById("success-story-modal"),c=document.getElementById("modal-content"),g=l?.querySelector(".modal-close"),u=document.querySelectorAll(".link-read-more");if(!l||!c)return;let m=null;if(s(),window.matchMedia("(max-width: 768px)").matches&&o(),window.matchMedia("(min-width: 769px)").matches){const e=document.getElementById("success-stories-grid");if(e){const t=document.querySelectorAll(".success-story-card:not(.filtered-hidden)");6<t.length&&e.classList.add("desktop-collapsed")}d()}u.forEach(e=>{e.addEventListener("click",function(t){t.preventDefault();const e=this.closest(".success-story-card"),n=e?.querySelector(".full-content");n&&!n.dataset.tpModal&&(i(n.innerHTML),m=this)})}),g?.addEventListener("click",a),l.addEventListener("click",function(t){t.target===l&&a()}),document.addEventListener("keydown",function(t){"Escape"===t.key&&"flex"===l.style.display&&a()})}function s(){const e=document.querySelectorAll(".filter-btn"),t=document.querySelectorAll(".success-story-card");0===e.length||e.forEach(t=>{t.addEventListener("click",function(){const t=this.getAttribute("data-filter");e.forEach(e=>{e.classList.remove("active"),e.setAttribute("aria-pressed","false")}),this.classList.add("active"),this.setAttribute("aria-pressed","true"),c=t,a(t),r(t),window.dispatchEvent(new CustomEvent("daFilterChanged",{detail:{filter:t}})),l()})})}function a(e){const t=document.querySelectorAll(".success-story-card");let n=0;t.forEach(t=>{const i=t.getAttribute("data-tags");if("all"===e)t.classList.remove("filtered-hidden"),window.matchMedia("(max-width: 768px)").matches?4<=n?t.classList.add("slider-hidden"):t.classList.remove("slider-hidden"):t.classList.remove("slider-hidden"),n++;else{const s=i?i.split(","):[];s.includes(e)?(t.classList.remove("filtered-hidden"),t.classList.remove("slider-hidden"),n++):t.classList.add("filtered-hidden")}});const i=document.getElementById("success-stories-grid");if(i)if(window.matchMedia("(max-width: 768px)").matches)i.classList.contains("slider-expanded")&&(i.classList.remove("slider-expanded"),i.classList.add("slider-active")),i.scrollTo({left:0,behavior:"smooth"});else{const e=document.querySelectorAll(".success-story-card:not(.filtered-hidden)");i.classList.remove("desktop-collapsed","desktop-expanded"),6<e.length&&i.classList.add("desktop-collapsed")}}function r(e){const t=document.querySelectorAll(".success-story-card");t.forEach(t=>{const n=t.getAttribute("data-story-type");if("trustpilot"===n)return;const i=t.getAttribute("data-tag-snippets");if(!i||"{}"===i)return;const s=i.trim();if(!s.startsWith("{")||!s.endsWith("}"))return;let a;try{a=JSON.parse(s)}catch(t){return}let r=null;if("zitat"===n?r=t.querySelector(".quote-text"):"video"===n?r=t.querySelector(".video-quote-overlay p"):"podcast"===n&&(r=t.querySelector(".podcast-snippet")),!!r){r.hasAttribute("data-original-snippet")||r.setAttribute("data-original-snippet",r.textContent);const t=r.getAttribute("data-original-snippet");r.textContent="all"!==e&&a[e]&&a[e].text?a[e].text:t}})}function l(){const e=document.getElementById("success-stories-grid"),t=document.getElementById("btn-show-all"),n=document.getElementById("btn-show-all-desktop"),i=document.querySelectorAll(".success-story-card:not(.filtered-hidden
178)"),s=i.length;t&&(4<s?(t.style.display="",t.setAttribute("aria-expanded","false"),t.querySelector(".btn-text-show").style.display="",t.querySelector(".btn-text-hide").style.display="none"):t.style.display="none"),n&&(6<s?(n.style.display="",n.setAttribute("aria-expanded","false"),n.querySelector(".btn-text-show").style.display="",n.querySelector(".btn-text-hide").style.display="none"):n.style.display="none")}function o(){const e=document.getElementById("success-stories-grid"),t=document.getElementById("btn-show-all");e&&t&&t.addEventListener("click",function(){const t=e.classList.contains("slider-expanded");t?(e.classList.remove("slider-expanded"),e.classList.add("slider-active"),this.setAttribute("aria-expanded","false"),this.querySelector(".btn-text-show").style.display="",this.querySelector(".btn-text-hide").style.display="none",setTimeout(()=>{e.scrollTo({left:0,behavior:"smooth"}),document.querySelector(".success-stories-section")?.scrollIntoView({behavior:"smooth",block:"start"})},100)):(e.classList.remove("slider-active"),e.classList.add("slider-expanded"),this.setAttribute("aria-expanded","true"),this.querySelector(".btn-text-show").style.display="none",this.querySelector(".btn-text-hide").style.display="")})}function d(){const t=document.getElementById("success-stories-grid"),n=document.getElementById("btn-show-all-desktop");t&&n&&(t.addEventListener("click",function(i){!i.target.closest(".video-card-clickable")||t.classList.contains("desktop-collapsed")&&(t.classList.remove("desktop-collapsed"),t.classList.add("desktop-expanded"),n.setAttribute("aria-expanded","true"),n.querySelector(".btn-text-show").style.display="none",n.querySelector(".btn-text-hide").style.display="")},!0),n.addEventListener("click",function(){const e=t.classList.contains("desktop-expanded");e?(t.classList.remove("desktop-expanded"),t.classList.add("desktop-collapsed"),this.setAttribute("aria-expanded","false"),this.querySelector(".btn-text-show").style.display="",this.querySelector(".btn-text-hide").style.display="none",document.querySelector(".success-stories-section")?.scrollIntoView({behavior:"smooth",block:"start"})):(t.classList.remove("desktop-collapsed"),t.classList.add("desktop-expanded"),this.setAttribute("aria-expanded","true"),this.querySelector(".btn-text-show").style.display="none",this.querySelector(".btn-text-hide").style.display="")}))}if(window.__successStoriesInitialized)return;window.__successStoriesInitialized=!0;let c="all";const g="functional";e()&&t(document)&&n(),document.addEventListener("da_consent_change",function(){e()&&t(document)&&n()}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",i):i()})();const foundSecurityUrl=window.location.href.match(/devsecops/g)||!1,foundSchuelerUrl=window.location.href.match(/schueler/g)||!1,foundUmschulungenUrl=window.location.href.match(/umschulungen/g)||!1,foundUnsereZukunftUrl=!1,TEAM_AND_FOLLOWER_DATA=[{id:"employee-counter",targetValue:42},{id:"follower-counter",targetValue:700}];function onPageLoad(){document.getElementById("da-curriculum")&&renderCurriculum(),foundSchuelerUrl||(startHeroAnimation(),initWorkplacesObserver(),!foundSecurityUrl&&initAlumins().then(()=>renderAlumins()))}if(onPageLoad(),foundSecurityUrl)window.addEventListener("load",()=>{setTimeout(createStraitPathsBetweenFaze,0),setTimeout(createStraitPaths,0),animatePath(),window.onresize=()=>{setTimeout(createStraitPathsBetweenFaze,0),setTimeout(createStraitPaths,0),animatePath()}});else if(foundSchuelerUrl)window.addEventListener("load",()=>{setTimeout(createStraitPaths,0),animatePath(),window.onresize=()=>{setTimeout(createStraitPaths,0),animatePath()}});else{const e=window.daKiAutomationCurriculum,t=e?createVerticalPathsBetweenFaze:createCurvePaths;window.addEventListener("load",()=>{setTimeout(t,0),setTimeout(createStraitPaths,0),animatePath(),window.onresize=()=>{setTimeout(t,0),setTimeout(createStraitPaths,0),animatePath()}})}foundSchuelerUrl||initCounters(TEAM_AND_FOLLOWER_DATA);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.