Source: https://git.ciil.io/ciil/talks/commit/d1498e709ff09780a920a9a45b9a79883c94b75d?style=split
Timestamp: 2019-06-27 00:32:40+00:00

Document:
init with reveal and 2018-05-31 gdpr talk · d1498e709f - git.ciil.io
+		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+		<title>DSGVO - Alles Schall und Rauch?</title>
+		<link rel="stylesheet" href="reveal.js/css/reveal.css">
+		<link rel="stylesheet" href="reveal.js/css/theme/black.css">
+		<!-- Theme used for syntax highlighting of code -->
+		<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css">
+		<!-- Printing and PDF exports -->
+			var link = document.createElement( 'link' );
+			link.rel = 'stylesheet';
+			link.type = 'text/css';
+			link.href = window.location.search.match( /print-pdf/gi ) ? 'reveal.js/css/print/pdf.css' : 'revealjs/css/print/paper.css';
+			document.getElementsByTagName( 'head' )[0].appendChild( link );
+		<div class="reveal">
+			<div class="slides">
+                <section><h2>DSGVO - Alles Schall und Rauch?</h2>
+                    <img class="fragment" src="imgs/dsgvo_alles_schall_und_rauch/stargate_command.png">
+                <section><h3>Speaker</h3>
+                    <p><span class="fragment">Name:<span> <span class="fragment">Simon<span> <span class="fragment current-visible">Lackerbauer<span><span class="fragment" /></p>
+                    <p class="fragment">Mehr ist mir nicht erlaubt zu sagen, und mehr ist euch nicht erlaubt zu wissen.</p>
+                    <p>Simon Lackerbauer
+                                <li>Operations Engineer by trade, jurist when nobody's looking</li>
+                                <li>Datenschutzbeauftragter Mayflower GmbH seit 2012</li>
+                                <li>Slides und Sonstiges: <a href="https://github.com/ciil">github.com/ciil</a></li>
+						</small>
+                    <section><h3>Rechtliche Grundlagen</h3>
+                    <section><h3>Systematische Einordnung</h3>
+                            <li>früher: BDSG (deutsches Bundesgesetz)</li>
+                            <li>seit 25.05.2018: Datenschutz-Grundverordnung (DSGVO/GDPR) und BDSG-neu via DSAnpUG-EU<br>
+                                <small>voller Name: Verordnung (EU) 2016/679 des Europäischen Parlaments und des Rates vom 27. April 2016 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten, zum freien Datenverkehr und zur Aufhebung der Richtlinie 95/46/EG</small>
+                    <section><h3>Was ist eine EU-Verordnung?</h3>
+                            <li>Es gibt EU-Richtlinien und EU-Verordnungen</li>
+                            <li>Richtlinien sind ... exactly what it says on the tin. Mehr oder weniger grobe Richtlinien, die jeder EU-Mitgliedsstaat selbst implementiert</li>
+                            <li>Verordnungen gelten direkt in allen Mitgliedsstaaten (und gem. EWR-Abkommen nach Inkorporierung auch in Island, Liechtenstein und Norwegen)</li>
+                            <li>Alle 24 Versionen in den <a href="https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32016R0679">24 Amtssprachen</a> gelten gleichberechtigt überall (what could possibly go wrong?)</li>
+                    <section><h3>Und deshalb ändert sich jetzt alles?</h3>
+                    <section><h3>Antwort: Nein.</h3>
+                        <p class="fragment"><small>Ein Großteil des bisherigen Datenschutzrechts gilt im Grundsatz fort. Die allgemeine Aufbruchstimmung rührt mehr daher, dass viele Unternehmen vor Inkrafttreten der DSGVO geltendes Recht verletzt haben, dies aber nicht geahndet wurde. Die allgemeine Befürchtung ist nun, dass Verstöße unter der DSGVO schneller, intensiver und mit Konsequenzen verfolgt werden.</small>
+                        <p class="fragment"><small>Weiterhin sind dort, wo sich tatsächlich Änderungen ergeben, diese häufig noch komplex oder schwer interpretierbar. Dadurch entsteht Rechtsunsicherheit.</small></p>
+                    <section><h3>Aufbau DSGVO</h3>
+                            <li>Am Anfang stehen 173 sog. "Erwägungsgründe"</li>
+                            <li>Dann gibt es 99 Artikel in 11 Kapiteln</li>
+                            <li>Die "wichtigsten" Abschnitte für Normalsterbliche: Kapitel 2 ("Grundsätze") und Kapitel 4 ("Verantwortlicher und Auftragsverarbeiter")</li>
+                            <li>Eine recht schöne Übersicht über die deutschen und englischen Fassungen der DSGVO gibt es unter <a href="https://dsgvo-gesetz.de">dsgvo-gesetz.de</a></li>
+                    <section><h3>Geltungsbereich</h3>
+                            <li>Datenschutzrecht bezieht sich <b>immer und ausschließlich</b> auf "personenbezogene Daten"</li>
+                            <li>Personenbezug liegt aber fast immer vor, wenn zumindest <b>irgendjemand</b> in der Lage ist, ein Datum einer natürlichen Person zuzuordnen (bekanntes Beispiel: IP-Adressen)</li>
+                            <li>Gilt für alle Verarbeitungen, die entweder in der EU stattfinden, oder die Daten von EU-Bürgern betreffen.</li>
+                    <section><h3>Und was ändert sich jetzt wirklich?</h3>
+                    <section><h3>Verarbeitung</h3>
+                            <li>bezeichnet "[...] das Erheben, das Erfassen, die Organisation, das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung"</li>
+                            <li>(vgl. BDSG a.F.: Erhebung, Verarbeitung, Nutzung)</li>
+                    <section><h3>Datenschutzbeauftragter</h3>
+                            <li>Für die meisten kleinen und mittleren Unternehmen in Deutschland laut DSGVO nicht mehr vorgesehen</li>
+                            <li class="fragment">Aber: BDSG n.F. führt die alten deutschen Regelungen mit mehr als 9 Beschäftigten fort (§ 38 BDSG)</li>
+                    <section><h3>Frage: Muss ich bei meiner App die DSGVO beachten?</h3>
+                    <section><h3>Antwort: Ja.</h3>
+                        <p class="fragment"><small>Ausnahme: Statischer Content ohne Interaktionsmöglichkeit und keinerlei Logging.</small></p>
+                    <section><h3>Frage: Aber was wir entwickeln, wird nur intern von Mitarbeitern des Kunden genutzt. Da gilt die DSGVO also dann nicht?</h3>
+                    <section><h3>Antwort: Doch.</h3>
+                        <p class="fragment"><small>Mitarbeiterdaten sind personenbezogene Daten. Selbst Kürzel/IDs/etc. sind personebezogene Daten, weil der Kunde sicher irgendwo die Möglichkeit hat, die ID einem Mitarbeiter zuzuordnen.</small></p>
+                    <section><h3>Weitere Fragen zum Geltungs-/Anwendungsbereich?</h3>
+                    <section><h3>Grundsätze des Datenschutzrechts</h3>
+                    <section><h3>Verbot mit Erlaubnisvorbehalt</h3>
+                            <li>Jede Verarbeitung personenbezogener Daten ist eigentlich verboten.</li>
+                            <li>Dieser Grundsatz hat zwei Ausnahmen:
+                                    <li>Die Person hat eingewilligt</li>
+                                    <li>Ein Gesetz erlaubt die Verarbeitung</li>
+                            <li>Praktisch keine Änderung zu bisher</li>
+                            <li class="fragment">Klassischer Fall der gesetzlichen Erlaubnis: Daten sind nötig zur Vertragserfüllung (Bankdaten, Adresse, etc. bei Versandhandel)</li>
+                    <section><h3>Datenschutzgrundsätze aus Art. 5</h3>
+                            <li>Zweckbindung</li>
+                            <li>Transparenz</li>
+                            <li>Datenminimierung</li>
+                            <li>Richtigkeit</li>
+                            <li>Speicherbegrenzung</li>
+                            <li>Integrität und Vertraulichkeit</li>
+                            <li>Rechenschaftspflicht</li>
+                            <li class="fragment">(Kein Direkterhebungsgrundsatz mehr!)</li>
+                    <section><h3>Zweckbindung</h3>
+                            <li><b>Vor</b> dem Sammeln von personenbezogenen Daten muss klar sein, für was die Daten erhoben werden</li>
+                            <li>Gilt insbesondere, wenn die Daten aufgrund einer Einwilligung verarbeitet werden</li>
+                            <li>Die Zweckbindung gilt aber auch für aufgrund gesetzlicher Erlaubnis erhobene Daten</li>
+                            <li>In der Regel nicht Aufgabe des Dienstleisters, darauf zu achten</li>
+                    <section><h3>Transparenz</h3>
+                            <li>Der Grund für die 400 Mails zum Thema, die jeder von uns über die letzten paar Wochen bekommen hat</li>
+                            <li>Weiter ausgeführt in Artt. 12ff. DSGVO</li>
+                            <li>Man muss vor der Verarbeitung betroffene Personen ausführlich, klar, verständlich, einfach unterrichten</li>
+                    <section><h3>Datenminimierung</h3>
+                            <li>Nur die Daten sammeln, die man unbedingt für die Zweckerfüllung braucht</li>
+                            <li>Grober Richtwert der oberen Grenze des Datensammelns selbst mit Einwilligung</li>
+                            <li>Ja, das macht Anwendungsbereiche wie ML nicht unbedingt einfacher, wo man anfangs häufig gar nicht weiß, was die interessantesten Komponenten sind</li>
+                    <section><h3>Richtigkeit</h3>
+                            <li>Man könnte denken, dass veraltete Daten auch dem Datenschutz dienen (alte Adressen erschweren das Tracking, etc.)</li>
+                            <li>Die DSGVO sieht aber vor, dass personenbezogene Daten, <b>wenn</b> sie rechtmäßig gesammelt werden dürfen, auch richtig und aktuell sein müssen</li>
+                            <li>Ergo: schon von User-Seite her die Änderung und Löschen möglichst einfach machen</li>
+                            <li>Nicht: "um dieses Feld zu ändern, bitte Mail an Support schreiben"</li>
+                    <section><h3>Speicherbegrenzung</h3>
+                            <li>Nur so lange speichern, wie es für die Zweckerfüllung unbedingt erforderlich ist</li>
+                            <li>Wenn in Verbindung stehende Daten darüber hinaus archiviert werden sollen, anonymisieren</li>
+                    <section><h3>Exkurs: anonymisierte Daten</h3>
+                            <li>Zuordnung zu realer Person ist nur mit unverhältnismäßig großem Aufwand/Vorwissen möglich</li>
+                            <li>Pseudonymisierung ist keine Anonymisierung</li>
+                    <section><h3>Integrität und Vertraulichkeit</h3>
+                            <li>Das ist der Punkt, welcher durch die "technischen und organisatorischen Maßnahmen" verwirklicht werden kann</li>
+                            <li>Angemessener Schutz der datenverarbeitenden Systeme</li>
+                            <li>Bei Auftragsverarbeitung: alle vorigen Punkte liegen größtenteils im Bereich des Auftraggebers, <b>hier</b> ist häufig der Auftragnehmer mitverantwortlich!</li>
+                    <section><h3>Rechenschaftspflicht</h3>
+                            <li>Art. 5 Abs. 2: "Der Verantwortliche ist für die Einhaltung des Absatzes 1 verantwortlich und muss dessen Einhaltung nachweisen können"</li>
+                            <li>Heißt in der Regel: Dokumentation von Prozessen und deren Einhaltung</li>
+                            <li>Je leichter irgendwas technisch nachweisbar ist, desto besser für alle</li>
+                            <li>Beispiel: wenn es heißt, dass nur Pubkey-Auth für SSH-Zugänge genutzt wird, dann PW-Auth abschalten. Sowas lässt sich auch einfach testen.</li>
+                    <section><h3>Moderne Passwortrichtlinien</h3>
+                        <img src="imgs/dsgvo_alles_schall_und_rauch/password_strength.png" width="60%"><br />
+                        <small><a href="https://www.xkcd.com/936/">XKCD #936: Password Strength (CC BY-NC)</a></small>
+                            <li>Für fast alles: <b>Passwortmanager</b></li>
+                            <li>Sonst: ein paar Pass<b>phrasen</b> für Disk-Encryption, GPG-Keys und als Masterpasswort für PW-Manager</li>
+                            <li>lieber einfach zu merken und lang als mit vielen Sonderzeichen und kurz</li>
+                            <li>2FA für wichtige Services</li>
+                    <section><h3>Display-Sichtschutz für Bahn und Flugzeug</h3>
+                            <li>Streng genommen wäre schon das öffentliche Surfen im internen Wiki ein Datenschutzverstoß, weil da häufig Realnamen drin stehen können</li>
+                            <li>Zusätzlich: automatisch und/oder manuell Rechner sperren, sobald man den Platz verlässt</li>
+                    <section><h3>Firmware</h3>
+                            <li>Intel AMT und ähnliches deaktivieren</li>
+                            <li>Sich generell im Klaren darüber sein, zu was euer BIOS so in der Lage ist</li>
+                    <section><h3>Betriebssystem und Updates</h3>
+                            <li>Windows und Mac: Aktuell mit Auto-Update</li>
+                            <li>Linux: regelmäßig auf aktuellen Stand bringen</li>
+                            <li>Alle Zugriffe idR mit normalen User-Rechten, sudo nur wenn nötig</li>
+                    <section><h3>Festplattenverschlüsselung</h3>
+                            <li>Windows Pro: Bitlocker</li>
+                            <li>Mac: FileVault</li>
+                            <li>Linux: z.B. cryptsetup mit luks</li>
+                    <section><h3>Backup</h3>
+                            <li>gut: vorhanden</li>
+                            <li>besser: verschlüsselt und offsite</li>
+                    <section><h3>Einschätzung des Kunden(projekts)</h3>
+                    <section><h3>Datenschutzbeauftragter des Kunden</h3>
+                            <li>Wer ist das und wie erreicht man ihn?</li>
+                            <li>Informationen im Intranet bereithalten</li>
+                    <section><h3>Produktiv-Daten</h3>
+                            <li>Wer hat Kontrolle?</li>
+                            <li>Wo liegen die Daten?</li>
+                            <li>Immer im Hinterkopf behalten: es dreht sich alles weiterhin rein um <b>personenbezogene</b> Daten.</li>
+                            <li>(Das bedeutet natürlich nicht, dass man Vertragspflichten zur Geheimhaltung ignorieren kann.)</li>
+                    <section><h3>Berechtigungen des Teams</h3>
+                            <li>Wer vergibt die Berechtigungen?</li>
+                            <li>Gibt es innerhalb des Teams ein gemeinsames Verständnis, nach welchem Prozess an die Produktiv-Daten gegangen wird?</li>
+                    <section><h3>Betreibt man als Auftragnehmer irgendwelche Systeme für den Kunden?</h3>
+                            <li>Sind da zB Testdaten drauf? Wie sehen die aus?</li>
+                            <li>Betreibt man vielleicht sogar Produktivsysteme für Kunden?</li>
+                    <section><h3>Freelancer im Team?</h3>
+                            <li>Müssen als Unterauftragnehmer in der Regel im Vertrag angegeben sein und müssen mit dem Hauptauftragnehmer wiederrum einen Vertrag über die Auftragsverarbeitung geschlossen haben</li>
+                    <section><h3>Homeoffice?</h3>
+                            <li>Was sagt der AV-Vertrag zu Arbeiten außerhalb von Arbeitgeber- oder Kunden-Offices?</li>
+                            <li>(Das deutsche Recht würde ziemlich sicher ein Zugangsrecht des Auftraggebers zu Privatwohnungen verneinen. Aber ein AV-Vertrag kann vorsehen, dass Homeoffice nicht möglich sein soll.)</li>
+                    <section><h3>Allgemein</h3>
+                            <li>AV-Vertrag ins Intranet</li>
+                            <li>Das Team sollte sich ein bisschen damit beschäftigt haben (genauso wie mit dem eigentlichen Projektvertrag)</li>
+                            <li>TL, SM, PO sollte das ganze ein bisschen genauer gelesen haben</li>
+                    <section><h3>Technische und organisatorische Maßnahmen</h3>
+                    <section><h3>Rechtsgrundlage DSGVO</h3>
+                            <li>Relevante Norm: Art. 32 DSGVO; Inhalt:</li>
+                                <li>Pseudonymisierung und Verschlüsselung personenbezogener Daten (lit a)</li>
+                                <li>Vertraulichkeit, Integrität, Verfügbarkeit und Belastbarkeit der Systeme und Dienste (lit b)</li>
+                                <li>Backup- und Wiederherstellungsfähigkeit (lit c)</li>
+                                <li>regelmäßigen Überprüfung, Bewertung und Evaluierung der Wirksamkeit der Maßnahmen (lit d)</li>
+                    <section><h3>Verhältnis zu Anlage zu § 9 Satz 1 BDSG-alt</h3>
+                            <li>Zutrittskontrolle (neu: lit b)</li>
+                            <li>Zugangskontrolle (neu: lit a, b)</li>
+                            <li>Zugriffskontrolle (neu: lit b)</li>
+                            <li>Weitergabekontrolle (neu: lit b)</li>
+                            <li>Eingabekontrolle (neu: lit b)</li>
+                            <li>Auftragskontrolle (neu: Art. 32 Abs. 4)</li>
+                            <li>Verfügbarkeitskontrolle (neu: lit c)</li>
+                            <li>Trennungsgebot (neu: lit b)</li>
+                    <section><h3>Zutrittskontrolle</h3>
+                            <li>Hier geht es um den physischen Zugang zum Office. Ist abgeschlossen oder, wenn nicht, jemand am Empfang? Ist der Serverraum (sofern da Daten des Auftraggebers lagern) noch extra abgeschlossen?</li>
+                    <section><h3>Zugangskontrolle</h3>
+                            <li>Rechner ist gesperrt, wenn grade keiner dran ist</li>
+                            <li>Rechner ist verschlüsselt, wenn er geklaut wird</li>
+                    <section><h3>Zugriffskontrolle</h3>
+                            <li>Hier geht es um <i>berechtigten</i> Zugriff: Wenn jemand schon darf, <b>was</b> darf er dann alles?</li>
+                            <li>letztlich: Berechtigungskonzept</li>
+                    <section><h3>Weitergabekontrolle</h3>
+                            <li>Transportweg-Sicherungen: idR geht es hier also um verschlüsselte Verbindung auf Kundensysteme, SSH, VPN, TLS, etc.</li>
+                            <li>Im Fall des tatsächlich physischen Transports (zB im Falle, dass ihr Screenshots/Logs aus Produktion lokal gespeichert habt fürs Debugging) greift wieder die Festplatten-Verschlüsselung</li>
+                    <section><h3>Eingabekontrolle</h3>
+                            <li>Wenn ihr grundsätzlich in der Lage seid, personenbezogene Daten beim Kunden auch zu ändern (zB Zugriff auf Produktion), gibt es dann ein Logging dieser Änderungen? Kann also jemand im Nachhinein nachvollziehen, wer und wann irgendwelche Daten geändert hat?</li>
+                    <section><h3>Auftragskontrolle</h3>
+                            <li>Einerseits, auf Auftragnehmer-Seite: sind die Mitarbeiter alle geschult und auf den Datenschutz verpflichtet?</li>
+                            <li>Andererseits, im Zusammenspiel mit Auftraggeber: werden Weisungen, die mit der Datenverarbeitung zu tun haben, ordentlich dokumentiert?</li>
+                    <section><h3>Verfügbarkeitskontrolle</h3>
+                            <li>Backup- und Restore-Konzept. Ist für den Auftragnehmer nur interessant, wenn er für den Auftraggeber tatsächlich Systeme bereitstellt, auf denen Produktivdaten verarbeitet werden.</li>
+                            <li>(Backups von Geschäftsdaten machen aber grundsätzlich auch ohne DSGVO Sinn.)</li>
+                    <section><h3>Trennungsgebot</h3>
+                            <li>Unterschiedliche Daten (sei es aufgrund von Zweckbindung, besondere Kategorien von Daten etc.) müssen getrennt verarbeitet werden. Es reicht hier bereits eine logische Trennung (gleiche DB, verschiedene Tabellen). Liegt auch idR vollständig im Verantwortungsbereich des Auftraggebers.</li>
+                <section><h3>Slides</h3>
+                    Die jeweils aktuellen Slides zu diesem Vortrag sind auf GitHub verfügbar: <a href="https://github.com/ciil/talks">github.com/ciil/talks</a>
+                    <section><h3>Bonus-Slides</h3>
+                    <section><h3>Kontaktformular ohne Einwilligung?</h3>
+                                <li>Ich kann Daten natürlich auch aufgrund eines anderen Erlaubnistatbestandes (Art. 6 I lit. b-f) verarbeiten.</li>
+                                <li>Unterschied: eine Einwilligung gilt idR erstmal unbegrenzt (bis zum Widerruf)</li>
+                                <li>Bei allen Erlaubnistatbeständen: Achtung Zweckbindung</li>
+                                <li>Wenn der Zweck wegfällt, unterliegen die Daten auf einmal einer Löschverpflichtung</li>
+                    <section><h3>Eventanmeldung ohne Einwilligung?</h3>
+                                <li>Auch hier grundsätzlich braucht man grundsätzlich keine Einwilligung.</li>
+                                <li>Lässt sich erstmal schön auf Art. 6 I lit. b stützen</li>
+                                <li>Sobald das Event rum ist, müssen theoretisch alle Daten gelöscht sein (sind nicht mehr notwendig für die Durchführung)</li>
+                                <li class="fragment">(Eine Abschlussmail mag zulässig sein.)</li>
+                    <section><h3>Stete Grundsatzfrage: Was will ich denn damit anstellen?</h3>
+                                <li>Zweckbindung ist das A und O</li>
+                                <li>Verhindert immer genau das "Ich hab die Daten ja schon, also kann ich jetzt Werbung machen"</li>
+                                <li>Teileinwilligungen sind ... möglich, aber recht schwierig richtig hinzubekommen</li>
+                    <section><h3>Ist Direktwerbung immer ein berechtigtes Interesse?</h3>
+                                <li>Erwägungsgründe Nr. 47 S. 7 und Nr. 70 sprechen von "Direktwerbung" als berechtigtem Interesse</li>
+                                <li>Extra Widerspruchsrecht für Direktwerbung: Art. 21 II und III</li>
+                                <li>Dass nun jegliche Daten gesammelt werden dürften, um damit unerwünschte Werbung an Betroffene zu schicken ist selbstverständlich nicht Intention der DSGVO</li>
+                                <li class="fragment">DSGVO ist keine gesetzgeberische Meisterleistung</li>
+                    <section><h3>Allgemein: Art. 6 I lit. f</h3>
+                                <li>Zwei Meinungen: 1. Super Auffangtatbestand!! 2. Viel zu weit, eng auszulegen!</li>
+                                <li>Bis jetzt eigentlich kein Mittelweg erkennbar</li>
+                                <li>Interessenabwägung gerade im werblichen Bereich anders bei Verbrauchern und gewerblichen Kunden?</li>
+                                <li>Den Unterschied automatisiert erkennen wahrscheinlich schwierig</li>
+                    <section><h3>Eventfotographie zu PR-Zwecken</h3>
+                                <li>Verhältnis zw. KUG und DSGVO gerade Thema heißer Debatten</li>
+                                <li>Wohl noch einer der Punkte, an denen Art. 6 I lit. f am ehesten greifen könnten</li>
+                                <li>In jedem Fall: zumindest Informationspflichten: bei E-Mail-Bestätigung/Online-Anmeldung auch kein unverhältnismäßig großer Aufwand (EG 62)</li>
+                                <li>Widerspruch anders als bei KUG wohl stets möglich</li>
+                    <section><h3>Eventfotographie zu PR-Zwecken (Teil 2)</h3>
+                                <li>Je kleiner die Veranstaltung, desto stärker müssen Regelungen beachtet werden</li>
+                                <li>Rechte von Personen, die offensichtlich nicht fotographiert werden wollen, beachten</li>
+                                <li>Möglichst keine Namensnennung am Foto (Foto trotzdem pers.b. Daten)</li>
+                                <li>Situation beachten, keine Fotos von Personen mit Bier in der Hand etc.</li>
+		<script src="reveal.js/lib/js/head.min.js"></script>
+		<script src="reveal.js/js/reveal.js"></script>
+			// More info about config & dependencies:
+			// - https://github.com/hakimel/reveal.js#configuration
+			// - https://github.com/hakimel/reveal.js#dependencies
+			Reveal.initialize({
+				dependencies: [
+					{ src: 'reveal.js/plugin/markdown/marked.js' },
+					{ src: 'reveal.js/plugin/markdown/markdown.js' },
+					{ src: 'reveal.js/plugin/notes/notes.js', async: true },
+					{ src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+Copyright (c) 2018 Simon Lackerbauer
+css/reveal.min.css
+js/reveal.min.js
+  - 4
+  - grunt retire
+Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**.
+### Personal Support
+If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
+When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested.
+- Should follow the coding style of the file you work in, most importantly:
+  - Tabs to indent
+  - Single-quoted strings
+- Should be made towards the **dev branch**
+- Should be submitted from a feature/topic branch (not your master)
+Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines
+	var port = grunt.option('port') || 8000;
+	var root = grunt.option('root') || '.';
+	if (!Array.isArray(root)) root = [root];
+		pkg: grunt.file.readJSON('package.json'),
+				'/*!\n' +
+				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
+				' * http://revealjs.com\n' +
+				' * MIT licensed\n' +
+				' *\n' +
+				' * Copyright (C) 2017 Hakim El Hattab, http://hakim.se\n' +
+				' */'
+			files: [ 'test/*.html' ]
+				banner: '<%= meta.banner %>\n',
+				screwIE8: false
+				src: 'js/reveal.js',
+				dest: 'js/reveal.min.js'
+			core: {
+				src: 'css/reveal.scss',
+				dest: 'css/reveal.css'
+			themes: {
+				expand: true,
+				cwd: 'css/theme/source',
+				src: ['*.sass', '*.scss'],
+				dest: 'css/theme',
+				ext: '.css'
+		autoprefixer: {
+				src: 'css/reveal.css'
+				compatibility: 'ie9'
+				src: 'css/reveal.css',
+				dest: 'css/reveal.min.css'
+				esnext: true,
+				latedef: 'nofunc',
+					console: false,
+					unescape: false,
+					define: false,
+					exports: false
+			files: [ 'Gruntfile.js', 'js/reveal.js' ]
+					port: port,
+					base: root,
+					livereload: true,
+					open: true,
+					useAvailablePort: true
+			bundle: {
+					'index.html',
+					'css/**',
+					'js/**',
+					'lib/**',
+					'images/**',
+					'plugin/**',
+					'**.md'
+				dest: 'reveal-js-presentation.zip'
+				files: [ 'Gruntfile.js', 'js/reveal.js' ],
+				tasks: 'js'
+				files: [
+					'css/theme/source/*.sass',
+					'css/theme/source/*.scss',
+					'css/theme/template/*.sass',
+					'css/theme/template/*.scss'
+				tasks: 'css-themes'
+				files: [ 'css/reveal.scss' ],
+				tasks: 'css-core'
+				files: root.map(path => path + '/*.html')
+			markdown: {
+				files: root.map(path => path + '/*.md')
+				livereload: true
+		retire: {
+			js: [ 'js/reveal.js', 'lib/js/*.js', 'plugin/**/*.js' ],
+			node: [ '.' ]
+	grunt.loadNpmTasks( 'grunt-contrib-connect' );
+	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
+	grunt.loadNpmTasks( 'grunt-autoprefixer' );
+	grunt.loadNpmTasks( 'grunt-retire' );
+	grunt.loadNpmTasks( 'grunt-sass' );
+	grunt.loadNpmTasks( 'grunt-zip' );
+	grunt.registerTask( 'default', [ 'css', 'js' ] );
+	// JS task
+	grunt.registerTask( 'js', [ 'jshint', 'uglify', 'qunit' ] );
+	// Theme CSS
+	grunt.registerTask( 'css-themes', [ 'sass:themes' ] );
+	// Core framework CSS
+	grunt.registerTask( 'css-core', [ 'sass:core', 'autoprefixer', 'cssmin' ] );
+	// All CSS
+	grunt.registerTask( 'css', [ 'sass', 'autoprefixer', 'cssmin' ] );
+	grunt.registerTask( 'package', [ 'default', 'zip' ] );
+	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
+	// Run tests
+	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
+Copyright (C) 2017 Hakim El Hattab, http://hakim.se, and reveal.js contributors
+  "name": "reveal.js",
+  "version": "3.6.0",
+    "js/reveal.js",
+    "css/reveal.css"
+  "homepage": "http://revealjs.com",
+  "description": "The HTML Presentation Framework",
+    "Hakim El Hattab <hakim.elhattab@gmail.com>"
+    "headjs": "~1.0.3"
+    "url": "git://github.com/hakimel/reveal.js.git"
+	/* SECTION 1: Set default width, margin, float, and
+	   background. This prevents elements from extending
+	   beyond the edge of the printed page, and prevents
+	   unnecessary background images from printing */
+		font-size: 20pt;
+		margin: 0 5%;
+		float: none !important;
+	/* SECTION 2: Remove any elements not needed in print.
+	   This would include navigation, ads, sidebars, etc. */
+	.nestedarrow,
+	.controls,
+	.fork-reveal,
+	.share-reveal,
+	.state-background,
+	.reveal .progress,
+	.reveal .backgrounds,
+	.reveal .slide-number {
+	/* SECTION 3: Set body font face, size, and color.
+	   Consider using a serif font for readability. */
+	body, p, td, li, div {
+		font-size: 20pt!important;
+		font-family: Georgia, "Times New Roman", Times, serif !important;
+	/* SECTION 4: Set heading font face, sizes, and color.
+	   Differentiate your headings from your body text.
+	   Perhaps use a large sans-serif for distinction. */
+		color: #000!important;
+		line-height: normal;
+		text-shadow: 0 0 0 #000 !important;
+	/* Need to reduce the size of the fonts for printing */
+	h1 { font-size: 28pt !important;  }
+	h2 { font-size: 24pt !important; }
+	h3 { font-size: 22pt !important; }
+	h4 { font-size: 22pt !important; font-variant: small-caps; }
+	h5 { font-size: 21pt !important; }
+	h6 { font-size: 20pt !important; font-style: italic; }
+	/* SECTION 5: Make hyperlinks more usable.
+	   Ensure links are underlined, and consider appending
+	   the URL to the end of the link for usability. */
+	a:link,
+		color: #000 !important;
+	.reveal a:link:after,
+	.reveal a:visited:after {
+		content: " (" attr(href) ") ";
+		color: #222 !important;
+	/* SECTION 6: more reveal.js specific additions by @skypanther */
+	ul, ol, div, p {
+		text-align: left !important;
+	.reveal pre,
+	.reveal table {
+	.reveal pre code {
+	.reveal blockquote {
+		margin: 20px 0;
+		position: static !important;
+		left: 0 !important;
+		top: 0 !important;
+		margin-left: 0 !important;
+		margin-top: 0 !important;
+		padding: 0 !important;
+		zoom: 1 !important;
+		overflow: visible !important;
+		-webkit-perspective: none;
+		   -moz-perspective: none;
+		    -ms-perspective: none;
+		        perspective: none;
+		-webkit-perspective-origin: 50% 50%;
+		   -moz-perspective-origin: 50% 50%;
+		    -ms-perspective-origin: 50% 50%;
+		        perspective-origin: 50% 50%;
+	.reveal .slides section {
+		visibility: visible !important;
+		padding: 60px 20px !important;
+		z-index: auto !important;
+		opacity: 1 !important;
+		page-break-after: always !important;
+		-webkit-transform-style: flat !important;
+		   -moz-transform-style: flat !important;
+		    -ms-transform-style: flat !important;
+		        transform-style: flat !important;
+		-webkit-transform: none !important;
+		   -moz-transform: none !important;
+		    -ms-transform: none !important;
+		        transform: none !important;
+		-webkit-transition: none !important;
+		   -moz-transition: none !important;
+		    -ms-transition: none !important;
+		        transition: none !important;
+	.reveal .slides section.stack {
+	.reveal section:last-of-type {
+		page-break-after: avoid !important;
+	.reveal section .fragment {
+	.reveal section img {
+		margin: 15px 0px;
+		background: rgba(255,255,255,1);
+		border: 1px solid #666;
+	.reveal section small {
+ * This stylesheet is used to print reveal.js
+ * presentations to PDF.
+ * https://github.com/hakimel/reveal.js#pdf-export
+/* Remove any elements not needed in print. */
+.reveal .controls,
+.reveal .playback,
+	font-family: Courier, 'Courier New', monospace !important;
+.reveal .slides .pdf-page {
+/* Slide backgrounds are placed inside of their slide when exporting to PDF */
+.reveal .slide-background {
+	z-index: auto !important;
+/* Display slide speaker notes when 'showNotes' is enabled */
+.reveal.show-notes {
+	max-height: none;
+.reveal .speaker-notes-pdf {
+/* Layout option which makes notes appear on a separate page */
+.reveal .speaker-notes-pdf[data-layout="separate-page"] {
+/* Display slide numbers when 'slideNumber' is enabled */
+.reveal .slide-number-pdf {
+Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceeding: https://github.com/hakimel/reveal.js#full-setup
+To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js)) when you run `npm run build -- css-themes`.
+This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding any selectors and styles you please.
+@import url(../../lib/font/league-gothic/league-gothic.css);
+.reveal .slides > section,
+.reveal .slides > section > section {
+  font-weight: inherit; }
+  font-size: 3.77em; }
+.reveal h2 {
+  font-size: 2.11em; }
+.reveal h3 {
+  font-size: 1.55em; }
+.reveal h4 {
+  text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
+  line-height: 1.3; }
+  max-height: 95%; }
+.reveal em {
+.reveal dl,
+  margin: 0 0 0 1em; }
+  margin-left: 40px; }
+.reveal dt {
+.reveal dd {
+  margin: 20px auto;
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
+.reveal blockquote p:first-child,
+.reveal blockquote p:last-child {

References: Art. 5
 Art. 32
 § 9
 Art. 32
 Art. 6
 Art. 21
 Art. 6
 Art. 6