Merge branch 'master' into develop

# Conflicts:
#	src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
diff --git a/get_started.txt b/get_started.txt
index 389bd68..6eac812 100644
--- a/get_started.txt
+++ b/get_started.txt
@@ -1,12 +1,16 @@
-******************************************************************************
-* Copyright © 2018 PTA GmbH.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-*
-*     http://www.eclipse.org/legal/epl-v10.html
-*
-******************************************************************************
+ *******************************************************************************
+ * Copyright (c) 2020 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 GET STARTED
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -21,7 +25,7 @@
 ---------------- REQUIREMENTS -------------
 * Java 1.8
 * Apache Maven 3.6.1
-* Graphviz
+
 
 IF you have this versions, check if you have set JAVA_HOME and M2_HOME.
     - If yes: Ignore step 1 and 2
@@ -70,10 +74,10 @@
  Value of variable: <GRAPHVIZ_DIR>\bin
 
 -------------------- 4 ---------------------
-To get started with the project you have to clone contactBaseData backend and frontend projects.
+To get started with the project you have to clone gridFailureInformation backend and frontend projects.
 
-Backend <project_url>: https://git.eclipse.org/r/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.backend
-Frontend <project_url>: https://git.eclipse.org/r/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.frontend
+Backend <project_url>: https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend.git
+Frontend <project_url>: https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend.git
 
 - Create a folder and do following for each of them
 - Open a cmd and navigate to the folder
@@ -100,7 +104,15 @@
 -------------------- 5 ---------------------
 Build the maven project
 
-Building the maven project, will produce a <project_name>.jar file, which is needed to run the project.
+The backend repository consists of several subprojects. The main backend is the
+"gfsBackService". Depending on the interfaces and the features you want to use, you
+need to build other subprojects as well:
+-addressImport: Importing addresses from csv-files
+-mailExport: Publish messages via e-mail
+-stoerungsauskundtInteraces: Export and import messages from the site "stoerungsauskunft.de"
+-others in future
+
+Building such a maven project, will produce a <project_name>.jar file, which is needed to run the project.
 - Open a command line and navigate to the root folder of the backend project
 - Use the following call to cleanly build and install artifacts into the local repository:
     $ mvn clean install
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index d573a4d..682a766 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -14,9 +14,9 @@
 ////
 
 = openKonsequenz - Architecture of the module 'Grid Failure Information'
-Frank Dietrich <frank.dietrich@pta.de>; Simon Reis <simon.reis@pta.de>
-:revnumber: 0.11
-:revdate: 19-05-2020
+Michel Alessandrini <michel.alessandrini@pta.de>; Frank Dietrich <frank.dietrich@pta.de>; Simon Reis <simon.reis@pta.de>
+:revnumber: 0.2
+:revdate: 03-07-2020
 :revremark:  Inital Draft
 <<<
 
@@ -744,17 +744,18 @@
 to setup the RabbitMQ configuration correctly.
 
 A client, that wants to use the message queue to import data, has to use
-the correct queue/channel configuration.In addition, the following values ​​must be entered as message headers:
+the correct queue/channel configuration. In addition, the following values must be entered as message headers:
 
-* *metaId* Unique id out of the foreign system.
-Eindeutige Id aus dem Fremdsystem. For each metaId from an external system
+* "*metaId*" Unique id out of the foreign system.
+For each metaId from an external system
 only one failure information object is ever created. If an existing metaId is sent again,
 the existing object is updated in the GridFailureInformation system.
-* *source* Short description of the external system, the message comes from
-* *description* Possibly a short description of the message
-* *payload* The message payload is the string of the message JSON
 
-Example of such a payload:
+* "*source*" Short description of the external system, the message comes from.
+* "*description*" Short description of the message (not mandatory)
+* "*payload*" The message payload is the string of the message JSON
+
+Example of a payload:
 [source,json]
 ----
 {
@@ -777,6 +778,25 @@
 }
 ----
 
+Possible values:
+
+* *branch*: S|W|F|G|TK|ST (Strom, Wasser, Fernwärme, Gas, Telekommunikation, Sekundärtechnik)
+* *description*: Discription of the failure
+* *planned*: "true" or "false" whether the failure is planned or not
+* *failureBegin*: Please provide the timestamp in the given form as "Zulu"-Time
+* *postcode*: postal code of the address of the failure
+* *city*: City of the failure
+* *district*: District of the failure
+* *street*: Street of the failure
+* *housenumber*: Housenumber of the address of the failure
+* *stationId*: Station-ID of the failure (for MD powerfailures)
+* *stationDescription*: Description of the failure (for MD powerfailures)
+* *latitude/longitude*: Coordinates of the failure
+* *radiusInMeters*: Radius of the failure in Meters
+* *pressureLevel*: ND|MD|HD (Nieder-, Mittel- oder Hochdruck) for gas-failures
+* *voltageLevel*: NS|MS|HS (Nieder-, Mittel- oder Hochspannung) for power failures
+
+
 The header information and the payload are strictly validated. The validation rules
 can be found in the files "*ImportDataDto.java*" and "*ForeignFailureDataDto.java*"
 (package "*org.eclipse.openk.gridfailureinformation.viewmodel*).
@@ -784,34 +804,117 @@
 Please refer to the subproject "*test Import Grid Failures*" of the backend repository, for an example for
 sending Data over the message queue.
 
-Complete Json example:
-[source,json]
+==== Import of addresses from CSV files
+Addresses can be imported from CSV files with the addressImport service.
+The import of general addresses and addresses for connections of power, gas and water are supported. Also addresses from power stations are imported.
+UTM coordinates from the sources are converted into latitude and longitude.
+Addresses with the same id are stored in one data row.
+
+Location and filename can be configured in the * .yaml files, which are located in the JAR file of the addressImport service:
+
+[#configuration-section-services]
+_Address Import configuration_
+
+* *adressimport.cleanup* If enabled=true the import service deletes all data from the address table before import.
+* *adressimport.cron* cron job parameter
+* *adressimport.file.addresses* directory and name of the import file for general addresses
+* *adressimport.file.power-connections* directory and name of the import file for addresses with power connections
+* *adressimport.file.gas-connections* directory and name of the import file for addresses with gas connections
+* *adressimport.file.water-connections* directory and name of the import file for addresses with water connections
+* *adressimport.file.power-stations* directory and name of the import file for power stations addresses
+
+* *utm.zoneNumber* Number of UTM zone
+* *utm.zoneLetter* Letter of UTM zone
+
+===== Source file requirements
+
+The CSV files have to be *semicolon-separated*. An example for a file is shown below.
+Examples for all files which can be imported are located in folder 'addressImport/importFiles'.
+
+Example for CSV file with general addresses:
 ----
-{
-    "metaId": "b5398ae8-a53c-4a8f-82c2-ffaf2f4b379f",
-    "source": "stoerd",
-    "description": "Beschreibung Test (not mandatory)",
-    "payload": {
-        "branch": "S",
-        "city": "Chicago",
-        "description": "failure in the system",
-        "district": "",
-        "failureBegin": "2020-11-19T14:13:15.666Z",
-        "housenumber": "10b",
-        "latitude": 12.345,
-        "longitude": 44,
-        "planned": true,
-        "postcode": "3456",
-        "pressureLevel": null,
-        "radiusInMeters": 678,
-        "stationDescription": null,
-        "stationId": null,
-        "street": "Downstreet",
-        "voltageLevel": "HS"
-    }
-}
+sdo_x1;sdo_y1;g3e_fid;plz;ort;ortsteil;strasse;hausnummer
+455430,85;5503137,15;74312595;68647;Biblis;Nordheim;Altrheinstr.;29
+455448,63;5503151,64;74400207;68647;Biblis;Nordheim;Altrheinstr.;27
+455464,51;5503162,81;74347053;68647;Biblis;Nordheim;Altrheinstr.;25
 ----
 
+The required structure of the import files is shown in the following tables:
+
+====== General addresses
+
+[options="header"]
+|=========================================================
+|Number of column|Content|Format
+|1|utm coordinates easting|Number(9,2)
+|2|utm coordinates northing|Number(10,2)
+|3|address id|Integer
+|4|postcode|String(30)
+|5|community|String(255)
+|6|district|String(255)
+|7|street|String(255)
+|8|housenumber|String(30)
+|=========================================================
+
+====== Addresses with power connections
+
+[options="header"]
+|=========================================================
+|Number of column|Content|Format
+|1|utm coordinates easting|Number(9,2)
+|2|utm coordinates northing|Number(10,2)
+|3|address id|Integer
+|4|postcode|String(30)
+|5|community|String(255)
+|6|district|String(255)
+|7|street|String(255)
+|8|housenumber|String(30)
+|9|power station number|String(30)
+|=========================================================
+
+====== Addresses with gas connections
+
+[options="header"]
+|=========================================================
+|Number of column|Content|Format
+|1|utm coordinates easting|Number(9,2)
+|2|utm coordinates northing|Number(10,2)
+|3|address id|Integer
+|4|postcode|String(30)
+|5|community|String(255)
+|6|district|String(255)
+|7|street|String(255)
+|8|housenumber|String(30)
+|9|group|String(255)
+|=========================================================
+
+====== Addresses with water connections
+[options="header"]
+|=========================================================
+|Number of column|Content|Format
+|1|utm coordinates easting|Number(9,2)
+|2|utm coordinates northing|Number(10,2)
+|3|address id|Integer
+|4|postcode|String(30)
+|5|community|String(255)
+|6|district|String(255)
+|7|street|String(255)
+|8|housenumber|String(30)
+|9|group|String(255)
+|=========================================================
+
+====== Addresses for power stations
+[options="header"]
+|=========================================================
+|Number of column|Content|Format
+|1|utm coordinates easting|Number(9,2)
+|2|utm coordinates northing|Number(10,2)
+|3|address id|Integer
+|4|power station number|String(30)
+|5|power station name|String(255)
+|=========================================================
+
+
 === Deployment of the application components
 
 ==== Deployment of the frontend
@@ -857,6 +960,19 @@
       like the Auth'n'Auth-Modul, because the token will be out of date)
 * *authNAuthService.ribbon.listOfServers* Here one can configure the base
      url to the Auth'n'Auth-Service
+* *contactService.ribbon.listOfServers* Here one can configure the base
+     url to the ContactBaseData-Service
+
+
+[#configuration-section-services]
+_Services configuration_
+
+* *services.authNAuth.name* Name for  Auth'n'Auth-Service-Service (for example "authNAuthService")
+
+* *services.contacts.name* Name for ContactBaseData-Service (for example "contactService")
+* *services.contacts.communicationType.mobile* Designation of mobile phone number as communication type in ContactBaseData-Service (for example "Mobil")
+* *services.contacts.useModuleNameForFilter*  Boolean Parameter to decide whether to filter contacts in contact service by module name in ContactBaseData-Service ("true" / "false")
+* *services.contacts.moduleName*  name of module to filter data from ContactBaseData-Service (for example "GridFailureInformation")
 
 [#configuration-section-rabbit_mq]
 _RabbitMQ configuration_
@@ -865,12 +981,16 @@
 * *rabbitmq.port* Port of the RabbitMQ-Server (for example "5672")
 * *rabbitmq.username* Username for the technical RabbitMQ user
 * *rabbitmq.password* Password the the technical RabbitMQ user
-* *rabbitmq.import_exchange*: Exchange name for the import queue
-* *rabbitmq.failure_import_queue* Queuename for the import queue (will be created by the backend)
-* *rabbitmq.failure_import_routingkey* Routing key for the import queue
-* *rabbitmq.export_exchange*: Exchange name for the export queue
-* *rabbitmq.mail_export_queue*: Queuename for the export queue (will be created by the backend)
-* *rabbitmq.mail_export_routingkey*: Exchange name for the export queue
+* *rabbitmq.queuename* Queuename for the import queue (will be created by the backend)
+* *rabbitmq.routingkey* Routing key for the import queue
+* *rabbitmq.exchangename*: Exchange name for the import queue
+
+* *rabbitmq.importExchange*: Exchange name for the import queue
+* *rabbitmq.importQueue* Queuename for the import queue (will be created by the backend)
+* *rabbitmq.importkey* Routing key for the import queue
+* *rabbitmq.exportExchange*: Exchange name for the export queue
+* *rabbitmq.exportQueue*: Queuename for the export queue (will be created by the backend)
+* *rabbitmq.exportKey*: Exchange name for the export queue
 
 _Credentials(Username and Password)_
 
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc.html b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc.html
new file mode 100644
index 0000000..838be48
--- /dev/null
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc.html
@@ -0,0 +1,2009 @@
+  <html>
+    <head>
+      <meta charset="utf-8">
+      <title>openKonsequenz - Architecture of the module &#39;Grid Failure Information&#39;Create Repository</title>
+      <style>
+        #wrapper {width: 960px; margin: 0 auto;}
+        /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
+/* Uncomment @import statement to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
+audio,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:none}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:0}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt{background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+:not(pre)>code.nobreak{word-wrap:normal}
+:not(pre)>code.nowrap{white-space:nowrap}
+pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
+pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
+pre>code{display:block}
+pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
+#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #e7e7e9}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
+@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
+.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
+.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.prettyprint{background:#f7f7f8}
+pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
+pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
+pre.prettyprint li code[data-lang]::before{opacity:1}
+pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
+table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
+table.linenotable td.code{padding-left:.75em}
+table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
+pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
+pre.pygments .lineno::before{content:"";margin-right:-.125em}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
+.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.excerpt,.quoteblock .quoteblock{margin:0 0 1.25em;padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
+.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
+.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content>:last-child{margin-bottom:-1.25em}
+td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left{margin:.25em .625em 1.25em 0}
+.imageblock.right{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background:#00fafa}
+.black{color:#000}
+.black-background{background:#000}
+.blue{color:#0000bf}
+.blue-background{background:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background:#fa00fa}
+.gray{color:#606060}
+.gray-background{background:#7d7d7d}
+.green{color:#006000}
+.green-background{background:#007d00}
+.lime{color:#00bf00}
+.lime-background{background:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background:#7d0000}
+.navy{color:#000060}
+.navy-background{background:#00007d}
+.olive{color:#606000}
+.olive-background{background:#7d7d00}
+.purple{color:#600060}
+.purple-background{background:#7d007d}
+.red{color:#bf0000}
+.red-background{background:#fa0000}
+.silver{color:#909090}
+.silver-background{background:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
+
+      </style>
+      <link href='https://fonts.googleapis.com/css?family=Noto+Serif' rel='stylesheet' type='text/css'>
+      <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
+      <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
+      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/default.min.css">
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/asciidoc.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/yaml.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/dockerfile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/makefile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/go.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/rust.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/haskell.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/typescript.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scss.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/less.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/handlebars.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/groovy.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scala.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/bash.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/ini.min.js"></script>
+      <script>hljs.initHighlightingOnLoad();</script>
+    </head>
+    <body>
+      <div id="wrapper">
+        <div class="article">
+          <h1 id="__asciidoctor-preview-0__">openKonsequenz - Architecture of the module 'Grid Failure Information'</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div style="page-break-after: always;"></div>
+<div id="__asciidoctor-preview-2__" class="paragraph">
+<p>Based on the ARC42-Template (v7.0):</p>
+</div>
+<div id="__asciidoctor-preview-3__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-4__">
+<p>Version: 0.1</p>
+</li>
+<li id="__asciidoctor-preview-5__">
+<p>Date: 24.03.2020</p>
+</li>
+<li id="__asciidoctor-preview-6__">
+<p>Status: Inital Draft</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+<!-- toc disabled -->
+<div style="page-break-after: always;"></div>
+</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_introduction_and_goals">1. Introduction and Goals</a>
+<ul class="sectlevel2">
+<li><a href="#_requirements_overview">1.1. Requirements Overview</a></li>
+<li><a href="#_quality_goals">1.2. Quality Goals</a></li>
+<li><a href="#_stakeholders">1.3. Stakeholders</a></li>
+</ul>
+</li>
+<li><a href="#_architecture_constraints">2. Architecture Constraints</a>
+<ul class="sectlevel2">
+<li><a href="#_technical_constraints">2.1. Technical Constraints</a></li>
+<li><a href="#_technical_dependencies">2.2. Technical Dependencies</a></li>
+</ul>
+</li>
+<li><a href="#_system_scope_and_context">3. System Scope and Context</a>
+<ul class="sectlevel2">
+<li><a href="#_business_context">3.1. Business Context</a></li>
+<li><a href="#_technical_context">3.2. Technical Context</a></li>
+<li><a href="#_solution_strategy">3.3. Solution Strategy</a></li>
+</ul>
+</li>
+<li><a href="#_building_block_view">4. Building Block View</a>
+<ul class="sectlevel2">
+<li><a href="#_whitebox_overall_system">4.1. Whitebox Overall System</a></li>
+<li><a href="#_level_2">4.2. Level 2</a></li>
+</ul>
+</li>
+<li><a href="#_runtime_view">5. Runtime view</a>
+<ul class="sectlevel2">
+<li><a href="#_login_authentication">5.1. Login / authentication</a></li>
+<li><a href="#_deployment_of_the_application_components">5.2. Deployment of the application components</a></li>
+<li><a href="#_ci_and_cd_components">5.3. CI- and CD-Components</a></li>
+<li><a href="#_continuous_deployment">5.4. Continuous deployment</a></li>
+</ul>
+</li>
+<li><a href="#_design_decisions">6. Design decisions</a></li>
+<li><a href="#_risks_and_technical_debts">7. Risks and Technical Debts</a></li>
+<li><a href="#_glossary">8. Glossary</a></li>
+</ul>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_introduction_and_goals"><a class="anchor" href="#_introduction_and_goals"></a>1. Introduction and Goals</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_requirements_overview"><a class="anchor" href="#_requirements_overview"></a>1.1. Requirements Overview</h3>
+<div id="__asciidoctor-preview-10__" class="paragraph">
+<p>The module 'Grid Failure Information' (in German: Modul 'Störungsinformationstool')
+informs employees and customers about failures and planned interruptions of supply.
+The module realizes the whole process from the creation of a failure information,
+via the publication until the closure of the failure information.</p>
+</div>
+<div id="__asciidoctor-preview-11__" class="paragraph">
+<p>It supports the user by the acquisition of data and leads the user through
+the workflow for processing a failure information.</p>
+</div>
+<div id="__asciidoctor-preview-12__" class="paragraph">
+<p>The module has many interfaces to other modules and external systems.</p>
+</div>
+<div id="__asciidoctor-preview-13__" class="paragraph">
+<p>The full requirements of the module 'Grid Failure Information'  is described in the document</p>
+</div>
+<div id="__asciidoctor-preview-14__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-15__">
+<p>"Anforderungsspezifikation Modul Störungsinformationstool" version 1.3 / 31-07-2019.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_quality_goals"><a class="anchor" href="#_quality_goals"></a>1.2. Quality Goals</h3>
+<div id="__asciidoctor-preview-16__" class="paragraph">
+<p>The module 'Grid Failure Information' represents a user module that is based on the architecture platform of openKONSEQUENZ. The main quality
+goals of the platform are:</p>
+</div>
+<div id="__asciidoctor-preview-17__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-18__">
+<p><strong>Flexibility</strong> The reference platform shall grant that different systems and modules from different vendors/developers can interact and interoperate, and may be exchanged or recombined.</p>
+</li>
+<li id="__asciidoctor-preview-19__">
+<p><strong>Availability</strong> All platform modules that are running on the platform can only be as available as the platform same for user modules that are based on platform modules.</p>
+</li>
+<li id="__asciidoctor-preview-20__">
+<p><strong>Maintainability</strong> (and testability as part of maintainability)  The platform and its platform modules shall be used longer than 15 years.</p>
+</li>
+<li id="__asciidoctor-preview-21__">
+<p><strong>Integration performance</strong> New implemented functionality of oK own modules and external modules shall be included fast / automatically.</p>
+</li>
+<li id="__asciidoctor-preview-22__">
+<p><strong>Security</strong> The platform and its modules need to underly security-by-design</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-23__" class="paragraph">
+<p>The main quality goals of the core module Contact Base Data are:</p>
+</div>
+<div id="__asciidoctor-preview-24__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-25__">
+<p><strong>Functionality</strong> The core module must fulfil the functional requirements mentioned in the section before</p>
+</li>
+<li id="__asciidoctor-preview-26__">
+<p><strong>Ergonomics</strong> The web interface must be realized according to oK-GUI-Styleguide.</p>
+</li>
+<li id="__asciidoctor-preview-27__">
+<p><strong>Good documentation</strong> (i.e. code and architecture documentation) makes code changes easier and automatic
+tests facilitate rigorous verification.</p>
+</li>
+<li id="__asciidoctor-preview-28__">
+<p><strong>Modifiability</strong> (and testability as part of modifiability)</p>
+</li>
+<li id="__asciidoctor-preview-29__">
+<p><strong>Integration performance</strong> The core module must be easy integratable in different production environments.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-30__" class="paragraph">
+<p>The following documents contain the quality goals in detail:</p>
+</div>
+<div id="__asciidoctor-preview-31__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-32__">
+<p>Architecture Committee Handbook v1.6.0 from 10-07-2019</p>
+</li>
+<li id="__asciidoctor-preview-33__">
+<p>Quality Committee Handbook v2.0.1 from 15-10-2018</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-34__" class="paragraph">
+<p>The architecture is based on the AC-Handbook. The quality demands are described in the QC-Handbook.
+Both specifications were fully complied with in the project, so that a high quality is given.</p>
+</div>
+<div id="__asciidoctor-preview-35__" class="paragraph">
+<p>The code quality regarding static code analysis and unit test code coverage on the backend and fronend sides
+are ensured by the use of sonarqube. The rule set and the qualtity gate are defined by the default, the
+so called "sonar way".</p>
+</div>
+<div id="__asciidoctor-preview-36__" class="paragraph">
+<p>The module 'Grid Failure Information' is part of the Eclipse project 'Eclipse openK User Modules'.
+This project bases on the Eclipse Public Licence 2.0.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_stakeholders"><a class="anchor" href="#_stakeholders"></a>1.3. Stakeholders</h3>
+<table id="__asciidoctor-preview-37__" class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 1. Stakeholders</caption>
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Role/Name</th>
+<th class="tableblock halign-left valign-top">Contact</th>
+<th class="tableblock halign-left valign-top">Expectations</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Product Owner (represents the Distribution System Operators)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Maike Salbeck, Carsten Otten, Benedikt Herget, Rainer Fuhrmann</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The software must fulfil their functional and nonfunctional requirements.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Module Developer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Michel Alessandrini, Jonas Tewolde, Frank Dietrich</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">All relevant business and technical information must be available for implementing the software.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">External Reviewer (represents the AC/QC)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">n.n.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The software and the documentation is realized according to the Quality and Architecture Handbook of openKONSEQUENZ.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">External Reviewer (represents the Eclipse-Requirements)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">n.n.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The software is  licensed under the EPL 2.0. It must be validated that all requirements are fulfilled.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">System Integrator</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">n.n.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">A documentation for the integration of the module in the DSO specific environments must be available.</p></td>
+</tr>
+</tbody>
+</table>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_architecture_constraints"><a class="anchor" href="#_architecture_constraints"></a>2. Architecture Constraints</h2>
+<div class="sectionbody">
+<div id="__asciidoctor-preview-57__" class="paragraph">
+<p>The main architecture constraints are:</p>
+</div>
+<div id="__asciidoctor-preview-58__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-59__">
+<p><strong>Public License</strong> The module must be available under the “Eclipse Public License 2.0”.</p>
+</li>
+<li id="__asciidoctor-preview-60__">
+<p><strong>Standardization</strong> The module must use the reference platform.</p>
+</li>
+<li id="__asciidoctor-preview-61__">
+<p><strong>Availability</strong> The source code of the module must be accessible to any interested person/company.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-62__" class="paragraph">
+<p>Therefore the project is published under the following repositories:</p>
+</div>
+<div id="__asciidoctor-preview-63__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-64__">
+<p><a href="https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend" class="bare">https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend</a></p>
+</li>
+<li id="__asciidoctor-preview-65__">
+<p><a href="https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend" class="bare">https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend</a></p>
+</li>
+<li id="__asciidoctor-preview-66__">
+<p><a href="https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.documentation" class="bare">https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.documentation</a></p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="_technical_constraints"><a class="anchor" href="#_technical_constraints"></a>2.1. Technical Constraints</h3>
+<div id="__asciidoctor-preview-67__" class="paragraph">
+<p>The following technical constraints are given:</p>
+</div>
+<table id="__asciidoctor-preview-68__" class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 2. Technical Contraints</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Component</th>
+<th class="tableblock halign-left valign-top">Constraints</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Base components of the reference platform</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Application Server Tomcat</p>
+</li>
+<li>
+<p>JPA EclipseLink</p>
+</li>
+<li>
+<p>Database PostgreSQL</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Programming language frontend</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Angular</p>
+</li>
+<li>
+<p>Bootstrap</p>
+</li>
+<li>
+<p>jQuery</p>
+</li>
+<li>
+<p>REST/JSON Interfaces</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">GUI design</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>According to oK-GUI-Styleguide</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Java QA environment</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Sonarqube 5.6.6</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Programming language</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Backend: Java 1.8</p>
+</li>
+<li>
+<p>Frontend: Angular 7+ (Javascript, Typescript, HTML5, CSS3)</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IDE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Not restricted (Eclipse, IntelliJ, Microsoft Developer Studio, Microsoft Visual Code &#8230;&#8203;)</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Build system</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Backend: Maven</p>
+</li>
+<li>
+<p>Frontend: NodeJS + Angular/cli</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Libraries, frameworks, components</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Used Libraries/Frameworks have to be compatible to the Eclipse Public License</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Architecture Documentation</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>According ARC42-Template</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_technical_dependencies"><a class="anchor" href="#_technical_dependencies"></a>2.2. Technical Dependencies</h3>
+<div class="sect3">
+<h4 id="_modules"><a class="anchor" href="#_modules"></a>2.2.1. Modules</h4>
+<div id="__asciidoctor-preview-89__" class="paragraph">
+<p>The following modules are required to use the 'Grid Failure Information':</p>
+</div>
+<table id="__asciidoctor-preview-90__" class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 3. Modules</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name of the module</th>
+<th class="tableblock halign-left valign-top">Purpose</th>
+<th class="tableblock halign-left valign-top">Status of the module</th>
+<th class="tableblock halign-left valign-top">status</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">'Auth&amp;Auth'</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Authentification and Authorization</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">available</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">required</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">'Contact base data'</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Contact Base Data</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">available</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">required</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">'eLogbook'</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Log Book</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">available</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">optional</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">'Planned Grid Measures'</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Planned Grid Measures</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">available</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">optional</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">'CIM-Cache'</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Interface to the SCADA system</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">available</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">optional</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_libraries"><a class="anchor" href="#_libraries"></a>2.2.2. Libraries</h4>
+<div id="__asciidoctor-preview-115__" class="paragraph">
+<p>The following libraries are used:
+TODO: Am Ende die Bibliotheken aktualisieren</p>
+</div>
+<table id="__asciidoctor-preview-116__" class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 4. Libraries</caption>
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 16.6666%;">
+<col style="width: 16.6666%;">
+<col style="width: 16.6666%;">
+<col style="width: 16.6666%;">
+<col style="width: 16.667%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name of the library</th>
+<th class="tableblock halign-left valign-top">Version</th>
+<th class="tableblock halign-left valign-top">Artefact-id</th>
+<th class="tableblock halign-left valign-top">Usage</th>
+<th class="tableblock halign-left valign-top">License</th>
+<th class="tableblock halign-left valign-top">Tier</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-parent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-data-jpa</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-oauth2-client</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-security</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-web</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.flywaydb.flyway-core</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.8</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.cloud.spring-cloud-starter-openfeign</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.0.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.cloud.spring-cloud-starter-netflix-ribbon</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.0.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.keycloak.keycloak-core</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.4.2_Final</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.postgresql.postgresql</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">42.2.8</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">New BSD License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.projectlombok.lombok</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.18.10</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.mapstruct.mapstruct-processor</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.2.0.Final</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">io.jsonwebtoken.jjwt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0.9.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">io.springfox.springfox-swagger2</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.9.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">io.springfox.springfox-swagger-ui</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.9.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-starter-test</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.security.spring-security-test</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">5.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.powermock.powermock-reflect</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">com.h2database.h2</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.4.200</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EPL</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.cloud.spring-cloud-dependencies</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hoxton.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.springframework.boot.spring-boot-maven-plugin</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.1.RELEASE</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.jacoco.jacoco-maven-plugin</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0.7.9</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EPL 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.sonarsource.scanner.maven.sonar-maven-plugin</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">LGPL 3.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.asciidoctor.asciidoctor-maven-plugin</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.3</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache License 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.jruby.jruby-complete</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">9.0.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EPL 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.asciidoctor.asciidoctorj-pdf</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.0-alpha.11</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.asciidoctor.asciidoctorj</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.4</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.asciidoctor.asciidoctorj-pdf</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.0-alpha.11</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">org.asciidoctor.asciidoctorj-diagram</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.4.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Apache 2.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Backend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Angular Font Awesome</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.1.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@auth0/angular-jwt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">font-awesome</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">4.7.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngrx/core</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.2.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngrx/effects</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8-2-0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngrx/store</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8.3.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngrx/store-devtools</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">8.2.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngx-translate/core</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">11.0.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ngx-translate/http-loader</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ag-grid-angular</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">21.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ag-grid-community</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">21.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">angular2-notifications</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">bootstrap</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">4.4.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">jquery</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.4.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">classlist.js</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.1.20150312</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">core-js</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">3.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">moment</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.24.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ng2-popover</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0.0.14</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ngrx-forms</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">5.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">npm-install-peers</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reselect</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">rxjs</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">6.5.3</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">rxjs-compat</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">6.5.4</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ts-helpers</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.1.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">tslib</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.10.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">web-animations-js</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.3.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">zone.js</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0.10.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@swimlane/ngx-datatable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">15.0.2</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">puppeteer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ngx-toastr</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">11.2.1</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">popper.js</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.16.0</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">@ng-bootstrap</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">5.1.5</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">MIT License</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Frontend</p></td>
+</tr>
+</tbody>
+</table>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_system_scope_and_context"><a class="anchor" href="#_system_scope_and_context"></a>3. System Scope and Context</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_business_context"><a class="anchor" href="#_business_context"></a>3.1. Business Context</h3>
+<div id="__asciidoctor-preview-490__" class="paragraph">
+<p>The core module 'Grid Failure Information' communicates via Restful Webservices with the follwowing modules:</p>
+</div>
+<div id="__asciidoctor-preview-491__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-492__">
+<p><strong>Core Module 'Auth &amp; Auth'</strong> The 'Grid Failure Information' can only be used by authorized users.
+Therefore, it is essential to invoke the module 'Auth &amp; Auth' for authorization and authentication
+purposes.</p>
+</li>
+<li id="__asciidoctor-preview-493__">
+<p><strong>Core Module 'Contact base data'</strong> The user management can only by done by the module contact base data.
+Therefore, it is essential to user the module ''Contact base data' for managing all users and customers.</p>
+</li>
+<li id="__asciidoctor-preview-494__">
+<p><strong>Core Module 'CIM-Cache'</strong> The 'Grid Failure Information' can only communicate via the CIM-Cachewith the SCADA system .
+Therefore, it is essential to invoke the module 'CIM-Cache' for getting information from the SCADA system.</p>
+</li>
+<li id="__asciidoctor-preview-495__">
+<p><strong>User Module 'eLogbook'</strong> The 'Grid Failure Information' can import failure information from the module 'eLogbook'.</p>
+</li>
+<li id="__asciidoctor-preview-496__">
+<p><strong>User Module 'Planned Grid Measures'</strong> The 'Grid Failure Information' can import failure information from the module 'Planned Grid Measures'.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_technical_context"><a class="anchor" href="#_technical_context"></a>3.2. Technical Context</h3>
+<div id="__asciidoctor-preview-497__" class="paragraph">
+<p>The following aspects have to be taken into account for external communication of the module 'Grid Failure Information':</p>
+</div>
+<div id="__asciidoctor-preview-498__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-499__">
+<p>RESTful web services are used as interface-technology.</p>
+</li>
+<li id="__asciidoctor-preview-500__">
+<p>Each external interface (interfaces between modules or external systems) has to be documented.</p>
+</li>
+<li id="__asciidoctor-preview-501__">
+<p>Dependencies of modules to services realized by other modules have to be specified and documented explicitly.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-502__" class="paragraph">
+<p>The interfaces of the module 'Grid Failure Information' are described in the interface documentation.
+TODO: Link zur interface documentation einfügen</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_solution_strategy"><a class="anchor" href="#_solution_strategy"></a>3.3. Solution Strategy</h3>
+<div id="__asciidoctor-preview-503__" class="paragraph">
+<p>The module 'Grid Failure Information' bases on a small microservice architecture, including
+an asynchronous messaging system.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_building_block_view"><a class="anchor" href="#_building_block_view"></a>4. Building Block View</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_whitebox_overall_system"><a class="anchor" href="#_whitebox_overall_system"></a>4.1. Whitebox Overall System</h3>
+<div id="__asciidoctor-preview-505__" class="paragraph">
+<p>The module 'grid failure information' contains several components:</p>
+</div>
+<div id="__asciidoctor-preview-506__" class="olist arabic">
+<ol class="arabic">
+<li id="__asciidoctor-preview-507__">
+<p><strong>SIT-Web-FE</strong> - This component (SPA with Angular) provides two HTML pages: a table and a map
+with failure information. This component is in the DMZ and can be called up from the Internet.</p>
+</li>
+<li id="__asciidoctor-preview-508__">
+<p><strong>SIT-Web-Guard</strong> - The SIT-Web-Guard (Java Spring Cloud) is a Zuul proxy
+(API gateway) that only forwards explicitly configured services. For the failure information
+tool, only certain services are available on the Internet that do not require authentication.
+Since the SIT-BE is protected by Spring Security, the SIT-Web-Guard procures guest authentication for forwarding.</p>
+</li>
+<li id="__asciidoctor-preview-509__">
+<p><strong>SIT-FE</strong> -
+This component (SPA with Angular) provides the user interface for the failure information application. The SIT-FE
+receives its authentication when it is called from the PortalFE in the form of a JWT.</p>
+</li>
+<li id="__asciidoctor-preview-510__">
+<p><strong>SIT_BE</strong> - The SIT-BE (Java Spring Boot Microservice) provides all CRUD services in the form of
+ReST services that the two frontends require. The SIT-BE is the only component that has
+access to the database. Every call is authorized against the PortalBE. This microservice also includes
+the JobManager subcomponent.</p>
+</li>
+<li id="__asciidoctor-preview-511__">
+<p><strong>JobManager</strong> - The various imports and exports are controlled via the JobManager. The JobManager
+knows all available import and export jobs and can control them via the internal message bus
+(RabbitMQ internal). Because the communication between the JobManager and the jobs takes place
+via the message bus, the JM does not need to know their configuration and URLs. For this, the JM must
+ensure synchronization (incl. timeout behavior) for asynchronous message communication.</p>
+</li>
+<li id="__asciidoctor-preview-512__">
+<p><strong>Import- and export jobs</strong> - All jobs provide a uniform (MessageBus) interface to start a job,
+return the result of a job, or to provide information about the respective job (name, version, timeout, status, etc.).
+The job manager cyclically requests all configured jobs to send current status information to it.
+The interfaces of the individual jobs "outside" can be very different (file system, Internet, message queue, etc.)</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-513__" class="imageblock">
+<div class="content">
+<img src="../img/architectureSIT.png" alt="architectureSIT">
+</div>
+<div class="title">Figure 1. Architecture of the grid failure information tool</div>
+</div>
+<div id="__asciidoctor-preview-514__" class="paragraph">
+<p>TODO: Ab hier komplett überarbeiten</p>
+</div>
+<div class="sect3">
+<h4 id="_contactbasedatafe"><a class="anchor" href="#_contactbasedatafe"></a>4.1.1. contactBaseDataFE</h4>
+<div id="__asciidoctor-preview-515__" class="paragraph">
+<p>This component implements the presentation logic for the <strong>contact-base-data</strong>-module using the <strong>Angular</strong>-TypeScript
+framework. The Frontend is a so called <strong>Single Page Application</strong> (SPA) because
+it behaves like a single HTML-page.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_contact_base_data_jar_backend_tier"><a class="anchor" href="#_contact_base_data_jar_backend_tier"></a>4.1.2. contact-base-data.jar (backend tier)</h4>
+<div id="__asciidoctor-preview-516__" class="paragraph">
+<p>This component implements the business functionality of the contact base data. And it provides services, that the
+contactBaseDataFE can use the functions in the frontend.</p>
+</div>
+<div id="__asciidoctor-preview-517__" class="paragraph">
+<p>The "spring boot/spring cloud" framework is used to implement this application.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_contactbasedatadev_db_database_tier"><a class="anchor" href="#_contactbasedatadev_db_database_tier"></a>4.1.3. ContactBaseDataDev-DB (Database tier)</h4>
+<div id="__asciidoctor-preview-518__" class="paragraph">
+<p>This component stores the data of the contact base data. It provides an interface to the contact-base-data.jar to create or
+change data in the database.</p>
+</div>
+<div id="__asciidoctor-preview-519__" class="paragraph">
+<p>The ContactBaseDataDev-DB runs on a Postgres DBMS.
+(The decision to use the Postgres DBMS was made by the openKONSEQUENZ architecture committee)</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_level_2"><a class="anchor" href="#_level_2"></a>4.2. Level 2</h3>
+<div class="sect3">
+<h4 id="_contactbasedatafe_frontend_tier"><a class="anchor" href="#_contactbasedatafe_frontend_tier"></a>4.2.1. ContactBaseDataFE (frontend tier)</h4>
+<div id="__asciidoctor-preview-520__" class="paragraph">
+<p>The frontend component implements the concept of a single-page application (SPA). The framework used is Angular5.</p>
+</div>
+<div id="__asciidoctor-preview-521__" class="paragraph">
+<p>It divides the contactBaseDataFE into three layers:</p>
+</div>
+<div id="__asciidoctor-preview-522__" class="olist arabic">
+<ol class="arabic">
+<li id="__asciidoctor-preview-523__">
+<p><strong>Components</strong> - The components (pages, lists, dialogs, common comp.) represent the presentation layer and the control layer. A component contains the control logic (.ts-file), an HTML-fragment as presentation description (.html-file) and a style definition (.css-file).</p>
+</li>
+<li id="__asciidoctor-preview-524__">
+<p><strong>Services</strong> - The service component communicates with the interfaces of the backend via HTTP requests by using the model component.</p>
+</li>
+<li id="__asciidoctor-preview-525__">
+<p><strong>Model</strong> - The model corresponds to the view-model of the backend tier.</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-526__" class="listingblock">
+<div class="title">Frontend tier</div>
+<div class="content">
+<pre>node contactBaseData_Frontend  {
+    component Model
+
+
+    node Components {
+        component "Pages"
+        component Lists
+        component "Common Components"
+    }
+
+    component Services
+
+    Components --&gt; Services
+    Components --&gt; Model
+    Services --&gt; Model
+}
+
+node "Contact Base Data Backend (simplified)" {
+    component RestService
+    component ViewModel_API__DTO
+}
+
+Services .. RestService
+Model .. ViewModel_API__DTO
+RestService --&gt; ViewModel_API__DTO</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_contact_base_data_jar_backend_tier_2"><a class="anchor" href="#_contact_base_data_jar_backend_tier_2"></a>4.2.2. contact-base-data.jar (backend tier)</h4>
+<div id="__asciidoctor-preview-527__" class="paragraph">
+<p>The backend tier contains five components which can be summarized in three layers:</p>
+</div>
+<div id="__asciidoctor-preview-528__" class="olist arabic">
+<ol class="arabic">
+<li id="__asciidoctor-preview-529__">
+<p><strong>Presentation layer</strong> - Represented by</p>
+<div id="__asciidoctor-preview-530__" class="olist loweralpha">
+<ol class="loweralpha" type="a">
+<li id="__asciidoctor-preview-531__">
+<p>REST-Srv</p>
+</li>
+<li id="__asciidoctor-preview-532__">
+<p>View model/DTO</p>
+</li>
+</ol>
+</div>
+</li>
+<li id="__asciidoctor-preview-533__">
+<p><strong>Controller layer</strong> - Represented by</p>
+<div id="__asciidoctor-preview-534__" class="olist loweralpha">
+<ol class="loweralpha" type="a">
+<li id="__asciidoctor-preview-535__">
+<p>Controller</p>
+</li>
+<li id="__asciidoctor-preview-536__">
+<p>Service</p>
+</li>
+</ol>
+</div>
+</li>
+<li id="__asciidoctor-preview-537__">
+<p><strong>Model layer</strong> - Represented by</p>
+<div id="__asciidoctor-preview-538__" class="olist loweralpha">
+<ol class="loweralpha" type="a">
+<li id="__asciidoctor-preview-539__">
+<p>Repository</p>
+</li>
+<li id="__asciidoctor-preview-540__">
+<p>Model</p>
+</li>
+</ol>
+</div>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-541__" class="listingblock">
+<div class="title">Backend tier</div>
+<div class="content">
+<pre>node "Contact Base Data Backend"  {
+    component Model
+
+
+    component RestService
+
+    component ViewModel_DTO
+
+    component Controller
+
+    component Service
+
+    component Repository
+
+    RestService --&gt; ViewModel_DTO
+    RestService --&gt; Controller
+    Controller --&gt; Service
+    Service --&gt; Repository
+    Repository --&gt; Model
+     }
+
+node DBMS {
+    component ContactBaseDataDB
+}
+
+Repository --&gt; ContactBaseDataDB</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_contactbasedata_db_database_tier"><a class="anchor" href="#_contactbasedata_db_database_tier"></a>4.2.3. ContactBaseData-DB (database tier)</h4>
+<div id="__asciidoctor-preview-542__" class="paragraph">
+<p>The ContactBaseData-DB is realized as a relational database system.</p>
+</div>
+<div id="__asciidoctor-preview-543__" class="listingblock">
+<div class="title">Database tier</div>
+<div class="content">
+<pre>node DBMS {
+    component ContactBaseDataDB
+}</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_program_configuration"><a class="anchor" href="#_program_configuration"></a>4.2.4. Program Configuration</h4>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_runtime_view"><a class="anchor" href="#_runtime_view"></a>5. Runtime view</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_login_authentication"><a class="anchor" href="#_login_authentication"></a>5.1. Login / authentication</h3>
+<div id="__asciidoctor-preview-545__" class="paragraph">
+<p>There is no login page, since the openK-Portal-Application is responsible for authentication and
+the whole SSO (single sign on) process.
+Therefore the application has to be started by providing a valid authentication token.
+This token is a JWT (JSON Web Token).</p>
+</div>
+<div id="__asciidoctor-preview-546__" class="literalblock">
+<div class="title">contactBaseData application is called by the <strong>portal</strong> application. The User is already logged in</div>
+<div class="content">
+<pre>actor User
+participant PortalFrontend
+participant PortalBackend
+participant ContactBaseDataFrontend
+entity ContactBaseDataStorage
+participant ContactBaseDataBackend
+
+
+User-&gt;PortalFrontend: Start ContactBaseData(JWT)
+PortalFrontend-&gt;ContactBaseDataFrontend: nav. to frontend-URL with JWT
+ContactBaseDataFrontend-&gt;ContactBaseDataStorage: Extract JWT and store token in session
+... some delay ...
+ContactBaseDataFrontend-&gt;ContactBaseDataBackend: Call any secured service with JWT
+group Call secured service
+
+    ContactBaseDataBackend-&gt;PortalBackend: "/checkAut(JWT)"
+    group Authorization succeeded
+        ContactBaseDataBackend-&gt;ContactBaseDataBackend: run service
+        ContactBaseDataBackend-&gt;ContactBaseDataFrontend: return service result
+    end
+    group Authorization failed
+        ContactBaseDataBackend-&gt;ContactBaseDataFrontend: return HTTP Code 401
+    end
+end</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_deployment_of_the_application_components"><a class="anchor" href="#_deployment_of_the_application_components"></a>5.2. Deployment of the application components</h3>
+<div class="sect3">
+<h4 id="_deployment_of_the_frontend"><a class="anchor" href="#_deployment_of_the_frontend"></a>5.2.1. Deployment of the frontend</h4>
+<div id="__asciidoctor-preview-547__" class="paragraph">
+<p>TODO:</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_deployment_of_the_backend"><a class="anchor" href="#_deployment_of_the_backend"></a>5.2.2. Deployment of the backend</h4>
+<div id="__asciidoctor-preview-548__" class="paragraph">
+<p>TODO:</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_deployment_of_the_database"><a class="anchor" href="#_deployment_of_the_database"></a>5.2.3. Deployment of the database</h4>
+<div id="__asciidoctor-preview-549__" class="paragraph">
+<p>The component "Flyway" is used to make to distribute structural
+or content related changes to the database.</p>
+</div>
+<div id="__asciidoctor-preview-550__" class="paragraph">
+<p>The database is built out of the scripts in the directory "db/migrations". Every sql
+script contains the complete db script for the contact base data database (in different versions).
+The highest version number indicates the currently valid script.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_configuration_of_the_system"><a class="anchor" href="#_configuration_of_the_system"></a>5.2.4. Configuration of the system</h4>
+<div class="sect4">
+<h5 id="_db_based_configuration"><a class="anchor" href="#_db_based_configuration"></a>DB based configuration</h5>
+<div id="__asciidoctor-preview-551__" class="paragraph">
+<p>TODO:</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_configuration_of_the_contact_base_data_backend"><a class="anchor" href="#_configuration_of_the_contact_base_data_backend"></a>Configuration of the contact base data backend</h5>
+<div id="__asciidoctor-preview-552__" class="paragraph">
+<p>The backend service is configured in the * .yaml files, which are located in the JAR file.</p>
+</div>
+<div id="__asciidoctor-preview-553__" class="paragraph">
+<p>This yml-file can be divided into different configuration profiles.
+When starting the backend-service one has the possibility to specify
+the active profile</p>
+</div>
+<div id="__asciidoctor-preview-554__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-555__">
+<p><strong>spring.datasource</strong> configuration section for the database connection</p>
+</li>
+<li id="__asciidoctor-preview-556__">
+<p><strong>flyway.enabled</strong> If enabled=true then the database migrations
+will automatically performed when starting the application
+(this parameter should normally be set to "false"</p>
+</li>
+<li id="__asciidoctor-preview-557__">
+<p><strong>server.max-http-header-size</strong> Maximum size for the http-headers</p>
+</li>
+<li id="__asciidoctor-preview-558__">
+<p><strong>jwt.tokenHeader</strong> Name of the http-header which carries the authentication-token.
+(should be "Authorization")</p>
+</li>
+<li id="__asciidoctor-preview-559__">
+<p><strong>jwt.useStaticJwt</strong> If set to "true" then the backend will use <strong>jwt.staticJwt</strong>
+as Authorization-token. (This won&#8217;t work for calls to other modules
+like the Auth&#8217;n&#8217;Auth-Modul, because the token will be out of date)</p>
+</li>
+<li id="__asciidoctor-preview-560__">
+<p><strong>authNAuthService.ribbon.listOfServers</strong> Here one can configure the base
+url to the Auth&#8217;n&#8217;Auth-Service</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_ci_and_cd_components"><a class="anchor" href="#_ci_and_cd_components"></a>5.3. CI- and CD-Components</h3>
+<div class="sect3">
+<h4 id="_git_repository"><a class="anchor" href="#_git_repository"></a>5.3.1. GIT-Repository</h4>
+<div id="__asciidoctor-preview-561__" class="paragraph">
+<p>Backend:
+<a href="https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.backend.git/" class="bare">https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.backend.git/</a></p>
+</div>
+<div id="__asciidoctor-preview-562__" class="paragraph">
+<p>Frontend:
+<a href="https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.frontend.git/" class="bare">https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.frontend.git/</a></p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_continuous_deployment"><a class="anchor" href="#_continuous_deployment"></a>5.4. Continuous deployment</h3>
+<div id="__asciidoctor-preview-563__" class="paragraph">
+<p>The continuous deployment is realized on two platforms:</p>
+</div>
+<div id="__asciidoctor-preview-564__" class="ulist">
+<ul>
+<li id="__asciidoctor-preview-565__">
+<p>the development platform (Dev-Environment)</p>
+</li>
+<li id="__asciidoctor-preview-566__">
+<p>the quality platform (Q-Environment)</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-567__" class="paragraph">
+<p>The automatic deployment on both of the environments is
+directly linked to the branches on the GIT-repositories:</p>
+</div>
+<div id="__asciidoctor-preview-568__" class="olist arabic">
+<ol class="arabic">
+<li id="__asciidoctor-preview-569__">
+<p>"SNAPSHOT" or "DEVELOP"</p>
+</li>
+<li id="__asciidoctor-preview-570__">
+<p>"MASTER" or "TRUNC"</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-571__" class="paragraph">
+<p>The running development is exclusively made on the Snapshot-Branch. Every time
+a developer checks in (pushes) code to the repository, an automatic build
+starts on the hudson ci-server. If the Snapshot-build is successful, then the result
+of that build is directly deployed on the Dev-environment.</p>
+</div>
+<div id="__asciidoctor-preview-572__" class="paragraph">
+<p>At the end of a scrum sprint or when a big user story is realized, all
+the code changes are merged from the <strong>Snapshot</strong>-Branch to the <strong>Trunc</strong>.
+This automatically triggers the build and the deployment on the
+Q-environment.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_design_decisions"><a class="anchor" href="#_design_decisions"></a>6. Design decisions</h2>
+<div class="sectionbody">
+<div id="__asciidoctor-preview-574__" class="paragraph">
+<p>All architecture decisions are based on the Architecture Committee Handbook. There are no deviations.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_risks_and_technical_debts"><a class="anchor" href="#_risks_and_technical_debts"></a>7. Risks and Technical Debts</h2>
+<div class="sectionbody">
+<div id="__asciidoctor-preview-576__" class="paragraph">
+<p>(Currently there aren&#8217;t any known issues)</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary"><a class="anchor" href="#_glossary"></a>8. Glossary</h2>
+<div class="sectionbody">
+<table id="__asciidoctor-preview-578__" class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 5. Abbreviations and glossary terms</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Short</th>
+<th class="tableblock halign-left valign-top">Long</th>
+<th class="tableblock halign-left valign-top">German</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">AC</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Architecture Committee</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Architektur-Komittee</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Gives framework and constraints according to architecture for oK projects.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">CNCU</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Central Network Control Unit</p></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DAO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Data Access Objects</p></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DTO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Data Transfer Object</p></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DSO</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Distribution System Operator</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Verteilnetz-betreiber (VNB)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Manages the distribution network for energy, gas or water.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">EPL</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Eclipse Public License</p></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Underlying license model for Eclipse projects like contact-base-data@openK</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ESB</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Enterprise Service Bus</p></td>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Central instance to exchange data to overcome point-to-point connections.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">oK</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">openKONSEQUENZ</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">openKONSEQUENZ</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the consortium of DSOs</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">QC</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Quality Committee</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Qualitätskomitee</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Gives framework and constraints according to quality for oK projects.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">SCADA</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisory Control and Data Acquisition</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Netzleitsystem</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">System, that allows DSOs view/control actual parameters of their power grid.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+        </div>
+      </div>
+    </body>
+  </html>
diff --git a/src/main/asciidoc/howto/howtoBuild.adoc b/src/main/asciidoc/howto/howtoBuild.adoc
index fe5adb8..688050c 100644
--- a/src/main/asciidoc/howto/howtoBuild.adoc
+++ b/src/main/asciidoc/howto/howtoBuild.adoc
@@ -1,4 +1,4 @@
-= openKonsequenz - How to build the module "eLogbook@openK"
+= openKonsequenz - How to build the module "grid-failure-information@openK"
 :Date: 2017-11-17
 :Revision: 1
 :icons:
@@ -7,59 +7,25 @@
 
 <<<
 
-IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* and *ContactBaseData* installed and configured!
 
 == Requirements
-* Apache Tomcat 8.0.30
-* Node.js 6.10.0
+* Node.js 12.14.0
 * Angular-CLI
-* Graphviz
 
 == How to build the Backend
 To build the backend you need to have installed Apache Maven and Java (look at `/deploy/`*get_started.txt*).
 
-=== Install and Configure Apache Tomcat
-Tomcat is an open-source Java Servlet Container and provides a "pure Java" HTTP web server environment in which Java code can run.
-
-* Download Tomcat version 8.0.30 from https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.30/bin/
-and extract it (apache-tomcat-8-0-30.zip).
-* Place the extracted folder on your C drive.
-* Configure Tomcat:
-** Configure the *context.xml* file. Copy the *<Resource … >* block from the project file `deploy/conf/`*context.xml*
-and paste it in the `<tomcat>/conf/`*context.xml* in the *<Context>* block.
-** To run both backend projects (elogbook and portal) at the same time on Tomcat you have to
- give him the parameters for different backend configs. Just paste the following line in the *context.xml* over the *<Resource … >*:
-
- <Parameter name="OK_ELOGBOOK_ENVIRONMENT" override="false" value="DevLocal"/>
-
-** Dont forget to save it.
-
-
-TIP: For more informations check *Deployment View* Chapter in *http://87.128.212.254:8880/elogbookFE_ADoc/elogbook_architectureDocumentation.html[elogbook_architectureDocumentation]*.
-
-** Tomcat also needs the database driver to be placed in `<tomcat>/lib`. Find it in the project file `deploy/lib/`*postgresql-xxx.jar*.
-
-
-=== Install Graphviz
-Graphviz is open source graph visualization software. You need this software because of auto-generated graphics in the documentations.
-
-* Download and install Graphviz from http://www.graphviz.org/Download_windows.php
-* If not, set the PATH variable
-
- Name of variable: GRAPHVIZ_DOT
- Value of variable: <GRAPHVIZ_DIR>\bin\dot.exe
-
-
 == How to build the Frontend
 
 === Install Node.js
 
 Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript (also Typescript which is a strongly typed form of JavaScript) code server-side.
 
-* Download Node.js 6.10.0 from https://nodejs.org/download/release/v6.10.0/ by clicking on a xxx.msi image for windows.
+* Download Node.js 12.14.0 from https://nodejs.org/download/release/v12.14.0/ by clicking on a xxx.msi image for windows.
 * Run the downloaded Node.js .msi Installer - including accepting the license, selecting the destination, and authenticating for the install.
 This requires Administrator privileges, and you may need to authenticate
-* To ensure Node.js has been installed, run the following in your terminal - you should get something like v6.10.0
+* To ensure Node.js has been installed, run the following in your terminal - you should get something like 12.14.0
 
 [source,command]
 ----
@@ -85,7 +51,7 @@
 ----
 {blank}
 
-TIP: Next Step -> Read the *elogbook_howtoRun* file!
+TIP: Next Step -> Read the *grid-failure-information_howtoRun* file!
 
 
 
diff --git a/src/main/asciidoc/howto/howtoRun.adoc b/src/main/asciidoc/howto/howtoRun.adoc
index 66e895e..6204fd4 100644
--- a/src/main/asciidoc/howto/howtoRun.adoc
+++ b/src/main/asciidoc/howto/howtoRun.adoc
@@ -1,4 +1,4 @@
-= openKonsequenz - How to run the module "eLogbook@openK"
+= openKonsequenz - How to run the module "gridFailureInformation@openK"
 :Date: 2017-11-17
 :Revision: 1
 :icons:
@@ -7,33 +7,36 @@
 
 <<<
 
-IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* and *ContactBaseData* installed and configured!
 
 == Requirements
-* Browser (Chrome or IE11 suggested)
+* Browser (Chrome or Edge suggested)
 
 == Prerequisites
 
-* *To see this application running you have to run Portal application too.* The reason is the authentication, which happened in the Portal login phase.
+* *To see this application running you have to run Portal and ContactBaseData application too.*
+The reason is the authentication, which happened in the Portal login phase. Additionally
+contacts that are used in the gridFailureInformation application are maintained in the
+ContactBaseData module.
 
 * A developing and administrating software for databases
 
 ** To work with a postgreSQL database is pgAdmin suggested
 
-*** Download and install pgAdmin (version 3 is used during developing process) from:
+*** Download and install pgAdmin (version 4 is used during developing process) from:
         https://www.pgadmin.org/download/
-*** Create a database and adapt the `<tomcat>/conf/`*context.xml* file to your database (look at *elogbook_howtoBuild*).
 
-*** To initialize the database schema run the sql scripts:
+*** Create a database
 
- /db/postgreSQL/02_create_DB_1.0.0.sql
- /db/postgreSQL/03_config_DB_1.0.0.sql
+*** To initialize the database schema run the latest sql script:
 
+ /src/resources/db/migration/V0_??__CREATE_GFI_DB.sql
 
-TIP: For detailed instructions look at *http://87.128.212.254:8880/elogbookFE_ADoc/elogbook_architectureDocumentation.html[elogbook_architectureDocumentation]*
 
 == How to run the Backend
-To run the backend you need to have installed and configured Apache Tomcat (look at *elogbook_howtoBuild*).
+To run the backend you to create a separate directory for each backend microservice
+you want to use, get the **.jar* file from the *target* directory of the java-project (which should exists after
+a successful maven-build) and copy it to the new directory (i.e. "gfsBackService"). Y
 
 === Set up and start Apache Tomcat
 Tomcat needs the Web Application Archive (war) file, which is produced by building the maven project, to run the application.
diff --git a/src/main/asciidoc/img/20200421_Status und Rollen_v7.png b/src/main/asciidoc/img/20200421_Status und Rollen_v7.png
new file mode 100644
index 0000000..71895df
--- /dev/null
+++ b/src/main/asciidoc/img/20200421_Status und Rollen_v7.png
Binary files differ
diff --git a/src/main/asciidoc/img/Liste-Karte.png b/src/main/asciidoc/img/Liste-Karte.png
new file mode 100644
index 0000000..3690e55
--- /dev/null
+++ b/src/main/asciidoc/img/Liste-Karte.png
Binary files differ
diff --git a/src/main/asciidoc/img/Listenansicht.png b/src/main/asciidoc/img/Listenansicht.png
new file mode 100644
index 0000000..d16cab3
--- /dev/null
+++ b/src/main/asciidoc/img/Listenansicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/abbrechen.png b/src/main/asciidoc/img/abbrechen.png
index cf98a3a..5262f25 100644
--- a/src/main/asciidoc/img/abbrechen.png
+++ b/src/main/asciidoc/img/abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/img/abmelden.png b/src/main/asciidoc/img/abmelden.png
index 1a8799f..b2441d6 100644
--- a/src/main/asciidoc/img/abmelden.png
+++ b/src/main/asciidoc/img/abmelden.png
Binary files differ
diff --git a/src/main/asciidoc/img/anlegen.png b/src/main/asciidoc/img/anlegen.png
new file mode 100644
index 0000000..49bd83c
--- /dev/null
+++ b/src/main/asciidoc/img/anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/auge-symbol.png b/src/main/asciidoc/img/auge-symbol.png
index 6bb5e6f..6d607d0 100644
--- a/src/main/asciidoc/img/auge-symbol.png
+++ b/src/main/asciidoc/img/auge-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/img/kachel.jpg b/src/main/asciidoc/img/kachel.jpg
new file mode 100644
index 0000000..7654750
--- /dev/null
+++ b/src/main/asciidoc/img/kachel.jpg
Binary files differ
diff --git a/src/main/asciidoc/img/kartenansicht-mouseover.png b/src/main/asciidoc/img/kartenansicht-mouseover.png
new file mode 100644
index 0000000..acecf27
--- /dev/null
+++ b/src/main/asciidoc/img/kartenansicht-mouseover.png
Binary files differ
diff --git a/src/main/asciidoc/img/kartenansicht-pin.png b/src/main/asciidoc/img/kartenansicht-pin.png
new file mode 100644
index 0000000..74b637c
--- /dev/null
+++ b/src/main/asciidoc/img/kartenansicht-pin.png
Binary files differ
diff --git a/src/main/asciidoc/img/kartenansicht.png b/src/main/asciidoc/img/kartenansicht.png
new file mode 100644
index 0000000..583907f
--- /dev/null
+++ b/src/main/asciidoc/img/kartenansicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/loeschen.png b/src/main/asciidoc/img/loeschen.png
new file mode 100644
index 0000000..92267e5
--- /dev/null
+++ b/src/main/asciidoc/img/loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/img/meldung-fehler.png b/src/main/asciidoc/img/meldung-fehler.png
new file mode 100644
index 0000000..4dfa584
--- /dev/null
+++ b/src/main/asciidoc/img/meldung-fehler.png
Binary files differ
diff --git a/src/main/asciidoc/img/meldung-hinweis.png b/src/main/asciidoc/img/meldung-hinweis.png
new file mode 100644
index 0000000..cb9f0d9
--- /dev/null
+++ b/src/main/asciidoc/img/meldung-hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/img/meldung-nach-abbrechen.png b/src/main/asciidoc/img/meldung-nach-abbrechen.png
new file mode 100644
index 0000000..e9a0d68
--- /dev/null
+++ b/src/main/asciidoc/img/meldung-nach-abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/img/oeffnen-modul.png b/src/main/asciidoc/img/oeffnen-modul.png
index c6ef04c..011a429 100644
--- a/src/main/asciidoc/img/oeffnen-modul.png
+++ b/src/main/asciidoc/img/oeffnen-modul.png
Binary files differ
diff --git a/src/main/asciidoc/img/ort-adresse.png b/src/main/asciidoc/img/ort-adresse.png
new file mode 100644
index 0000000..59c81ab
--- /dev/null
+++ b/src/main/asciidoc/img/ort-adresse.png
Binary files differ
diff --git a/src/main/asciidoc/img/ort-karte.png b/src/main/asciidoc/img/ort-karte.png
new file mode 100644
index 0000000..badab4f
--- /dev/null
+++ b/src/main/asciidoc/img/ort-karte.png
Binary files differ
diff --git a/src/main/asciidoc/img/ort-station.png b/src/main/asciidoc/img/ort-station.png
new file mode 100644
index 0000000..56ca7cb
--- /dev/null
+++ b/src/main/asciidoc/img/ort-station.png
Binary files differ
diff --git a/src/main/asciidoc/img/ortserfassung.png b/src/main/asciidoc/img/ortserfassung.png
new file mode 100644
index 0000000..72c1251
--- /dev/null
+++ b/src/main/asciidoc/img/ortserfassung.png
Binary files differ
diff --git a/src/main/asciidoc/img/speichern.png b/src/main/asciidoc/img/speichern.png
index d24aeb4..826f3b0 100644
--- a/src/main/asciidoc/img/speichern.png
+++ b/src/main/asciidoc/img/speichern.png
Binary files differ
diff --git a/src/main/asciidoc/img/stift-symbol.png b/src/main/asciidoc/img/stift-symbol.png
index c892d04..2d1806e 100644
--- a/src/main/asciidoc/img/stift-symbol.png
+++ b/src/main/asciidoc/img/stift-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/img/stoerung-detail.png b/src/main/asciidoc/img/stoerung-detail.png
new file mode 100644
index 0000000..b1c60fb
--- /dev/null
+++ b/src/main/asciidoc/img/stoerung-detail.png
Binary files differ
diff --git a/src/main/asciidoc/img/stoerung-erstellen.png b/src/main/asciidoc/img/stoerung-erstellen.png
new file mode 100644
index 0000000..9b95211
--- /dev/null
+++ b/src/main/asciidoc/img/stoerung-erstellen.png
Binary files differ
diff --git a/src/main/asciidoc/img/stoerung-uebersicht.png b/src/main/asciidoc/img/stoerung-uebersicht.png
new file mode 100644
index 0000000..c38845d
--- /dev/null
+++ b/src/main/asciidoc/img/stoerung-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/verdichten-1.png b/src/main/asciidoc/img/verdichten-1.png
new file mode 100644
index 0000000..b45689b
--- /dev/null
+++ b/src/main/asciidoc/img/verdichten-1.png
Binary files differ
diff --git a/src/main/asciidoc/img/verdichten-2.png b/src/main/asciidoc/img/verdichten-2.png
new file mode 100644
index 0000000..36017dc
--- /dev/null
+++ b/src/main/asciidoc/img/verdichten-2.png
Binary files differ
diff --git a/src/main/asciidoc/img/verdichten-3.png b/src/main/asciidoc/img/verdichten-3.png
new file mode 100644
index 0000000..a76aa09
--- /dev/null
+++ b/src/main/asciidoc/img/verdichten-3.png
Binary files differ
diff --git a/src/main/asciidoc/img/verdichten-4.png b/src/main/asciidoc/img/verdichten-4.png
new file mode 100644
index 0000000..ddbbffd
--- /dev/null
+++ b/src/main/asciidoc/img/verdichten-4.png
Binary files differ
diff --git a/src/main/asciidoc/img/verdichten-5.png b/src/main/asciidoc/img/verdichten-5.png
new file mode 100644
index 0000000..a579c13
--- /dev/null
+++ b/src/main/asciidoc/img/verdichten-5.png
Binary files differ
diff --git a/src/main/asciidoc/img/versionierung-1.png b/src/main/asciidoc/img/versionierung-1.png
new file mode 100644
index 0000000..754f6ca
--- /dev/null
+++ b/src/main/asciidoc/img/versionierung-1.png
Binary files differ
diff --git a/src/main/asciidoc/img/versionierung-2.png b/src/main/asciidoc/img/versionierung-2.png
new file mode 100644
index 0000000..7b1eb9f
--- /dev/null
+++ b/src/main/asciidoc/img/versionierung-2.png
Binary files differ
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
index 7c22606..af63e6d 100644
--- a/src/main/asciidoc/userDocumentation/userDocumentation.adoc
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
@@ -18,17 +18,17 @@
 <<<
 
 
-* Version: 0.1
-* Datum: 05.03.2020
-* Status: Initaler Entwurf
+* Version: 0.2
+* Datum: 03.07.2020
+* Status: In Bearbeitung
 
 <<<
 
 :Author: Dr. Michel Alessandrini
 :Email: michel.alessandrini@pta.de
 
-:Date: 2020-03-05
-:Revision: 0.1
+:Date: 2020-07-03
+:Revision: 0.2
 
 :icons:
 
@@ -42,50 +42,187 @@
 :iconsdir: ../img/icons
 
 :toc:
-:toclevels: 4
+
+:toclevels: 3
 :toc-title: Inhaltsverzeichnis
-:toc-placement!:
+
+:toc-placement:
 :sectanchors:
 :numbered:
 
+:sectnumlevels: 5
+
 toc::[]
 
 <<<
 
 == Sinn und Zweck des Moduls Störungsinformationstool
 
-TODO
+Das Modul Störungsinformationstool ist ein User-Modul der openKONSEQUENZ.
+
+Mit diesem Modul hat ein Netzbetreiber jederzeit alle Störungsmeldungen
+inklusive der aktuellen Status im Überblick.
+
+Dabei wird jede Störungsmeldung durch einen
+vordefinierten Prozess von der manuellen Erfassung oder dem automatischen Import
+über die Veröffentlichung bis zur Beseitigung der Störung unterstützt.
+Die Zuständigkeiten im Prozess sind durch verschiedene Benutzerrollen klar
+geregelt.
 
 <<<
 
 == Übersicht
 
 [[uebersicht-benutzerrollen]]
-=== Benutzerrollen und Aufgaben
-Zur Bearbeitung von Störungsmeldungen sind folgende Benutzerrollen
+=== Benutzerrollen
+Zur Bearbeitung von Störungsmeldungen sind verschiedene Benutzerrollen
+definiert, deren Aufgaben (Berechtigungen) in den folgenden Unterabschnitten
+aufgelistet sind:
+
+TODO: Frage: Wer darf Verteilergruppen anlegen und bearbeiten?
+
+==== Erfasser
+* <<uebersicht-aller-stoer,Darf alle Störungsmeldungen sehen>>
+* <<stoerungsmeldung-erstellen,Darf Störungsmeldungen anlegen>>
+* <<stoerung-ansicht-bearbeitung,Darf Störungsmeldungen im internen Bearbeitungsstatus "neu" und "geplant" bearbeiten>>
+* <<stoerung-ansicht-bearbeitung,Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten>>
+* <<statuswechsel-allgemein,Darf den Wechsel des internen Bearbeitungsstatus von "neu" nach "angelegt" durchführen>>
+* <<statuswechsel-allgemein,Darf den Wechsel des internen Bearbeitungsstatus von "geplant" nach "angelegt" durchführen>>
+* <<stoerungsmeldung-loeschen,Darf Störungsmeldungen im Status "neu" und "geplant" löschen>>
+
+==== Qualifizierer
+* <<uebersicht-aller-stoer,Darf alle Störungsmeldungen sehen>>
+* <<stoerung-ansicht-bearbeitung,Darf Störungsmeldungen im internen Bearbeitungsstatus "angelegt" und "aktualisiert" bearbeiten>>
+* <<stoerung-ansicht-bearbeitung,Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten>>
+* <<allg-funktionen-uebersicht-aller-sm-verdichten,Darf Störungsmeldungen verdichten>>
+* <<statuswechsel-allgemein,Darf den Wechsel des internen Bearbeitungsstatus von "angelegt" nach "qualifiziert" durchführen>>
+* <<statuswechsel-allgemein,Darf den Wechsel des internen Bearbeitungsstatus von "qualifiziert" nach "aktualisiert" durchführen>>
+* <<statuswechsel-allgemein,Darf den Wechsel des internen Bearbeitungsstatus von "aktualisiert" nach "qualifiziert" durchführen>>
+* <<statuswechsel-allgemein,Darf Störungsmeldungen abschließen (Wechsel des internen Bearbeitungsstatus auf "beendet")>>
+* <<statuswechsel-stornieren,Darf Störungsmeldungen stornieren (Wechsel des internen Bearbeitungsstatus auf "storniert")>>
+
+==== Veröffentlicher
+* <<uebersicht-aller-stoer,Darf alle Störungsmeldungen sehen>>
+* <<stoerung-ansicht-bearbeitung,Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten>>
+* <<allg-funktionen-uebersicht-aller-sm-verdichten,Darf Störungsmeldungen verdichten>>
+* <<statuswechsel-veroffentlichung,Darf Störungsmeldungen veröffentlichen (Veröffentlichungsstatus ändern)>>
+* Darf Verteilgruppen anlegen
+* Darf Email-Vorlagen bearbeiten
+
+
+==== Gast
+* <<uebersicht-aller-stoer,Darf alle Störungsmeldungen sehen>>
+
+
+==== Administrator
+* Darf alles
+* Darf zusätzlich Konfigurationen vornehmen (Details sind in technischer Dokumentation beschrieben)
+** TODO prüfen: Mailvorlagen für Benachrichtigungen (bei Ziel-Status "Genehmigt", "Storniert", "Zurückgewiesen")
+** TODO prüfen: Basis eMail-Verteilerlisten
+
+TODO: ergänzen
+
+=== Status
+
+[[uebersicht-bearbeitungsstatus-intern]]
+==== Bearbeitungsstatus (intern)
+Zur Bearbeitung von Störungsmeldungen sind folgende (internen) Bearbeitungsstatus
 definiert:
 
-TODO
+===== Neu
+* Die Störungsmeldung befindet sich in der manuellen Erst-Erfassung.
+* Die Störungsmeldung enthält u.U. noch nicht alle erforderlichen Informationen.
+
+===== Geplant
+* Die Störungsmeldung ist automatisch über eine Schnittstelle erzeugt worden.
+* Der Störungsbeginn liegt in der Zukunft (geplante Maßnahme).
+* Eine manuelle Bearbeitung der Störungsmeldung ist notwendig.
+
+===== Angelegt
+* Der Erfassungsvorgang ist vollständig abgeschlossen.
+* Die Störungsmeldung enthält alle erforderlichen Informationen.
+
+===== Qualifiziert
+* Die Störungsmeldung ist im Vier-Augen-Prinzip geprüft.
+* Die Störungsmeldung ist ggf. um weitere Informationen ergänzt.
+* Die Störungsmeldung ist ggf. verdichtet.
+
+===== Aktualisiert
+* Die Störungsmeldung wurde nachträglich bearbeitet/verändert.
+
+.Hinweis:
+* Die Störungsmeldung befand sich zum Zeitpunkt der Bearbeitung im Status "qualifiziert".
+
+===== Abgeschlossen
+* Die Störung ist behoben.
+* Die Störungsmeldung ist nur noch im Lesemodus verfügbar.
+
+===== Storniert
+* Die Störungsmeldung ist storniert.
+* Die Störungsmeldung ist nur noch im Lesemodus verfügbar.
 
 
-[[uebersicht-statuszustaende]]
-=== Statuszustände
-Zur Bearbeitung von Störungsmeldungen sind folgende Status
+[[uebersicht-veroeffentlichungsstatus]]
+==== Veröffentlichungsstatus
+Für die Veröffentlichung von Störungsmeldungen sind folgende Veröffentlichungsstatus
 definiert:
 
-TODO
+===== Nicht gesetzt
+* Initialer Status einer (manuell oder automatisch) neu-angelegten Störungsmeldung
 
-=== Gesamtprozess
+===== Nicht öffentlich
+* Die Störungsmeldung ist nicht für die Öffentlichkeit sichtbar.
 
-TODO
+.Hinweis:
+* Die Störungsmeldung war zu keinem Zeitpunkt für die Öffentlichkeit sichtbar.
+
+===== Öffentlich
+* Die Störungsmeldung ist für die Öffentlichkeit sichtbar.
+* Die Veröffentlichung erfolgt über ausgewählte Kanäle
+
+===== Zurückgezogen
+* Die Störungsmeldung ist nicht mehr für die Öffentlichkeit sichtbar.
+
+.Hinweis:
+* Die Störungsmeldung war eine gewisse Zeit für die Öffentlichkeit sichtbar.
+
+
+[[uebersicht-bearbeitungsstatus-extern]]
+==== Bearbeitungsstatus (extern)
+Der externe Bearbeitungsstatus ist nur bei veröffentlichten Störungsmeldungen
+(d.h. Veröffentlichungsstatus = öffentlich) relevant.
+
+Der externe Bearbeitungsstatus leitet sich vom internen Bearbeitungsstatus
+in Kombination mit den Werten aus Störungsbeginn und -ende ab. Konkret bedeutet das
+für die einzelnen Statuszustände einer Störungsmeldung folgendes:
+
+===== Geplant
+* Status (intern) = "qualifiziert"
+* Störungsbeginn = noch nicht erreicht (liegt in der Zukunft)
+
+===== In Bearbeitung
+* Status (intern) = "qualifiziert"
+* Störungsbeginn = ist erreicht (liegt in der Vergangenheit)
+
+===== Beendet
+* Status (intern) = "qualifiziert" oder “veröffentlicht”
+* Störungsende = ist erreicht (liegt in der Vergangenheit)
+
+oder
+
+* Status (intern) = "storniert" oder “abgeschlossen”
+
+
+=== Prozessablauf
+Der gesamte Prozessablauf zur Bearbeitung einer Störung
+ist im folgenden Prozessdiagramm dargestellt.
+
+.Prozessübersicht
+image::20200421_Status und Rollen_v7.png[]
 
 <<<
 
 == Benutzerdialoge
-
-TODO
-
-=== Allgemeine Hinweise
 Die Anwendung ist für folgende Endgeräte optimiert:
 
 * Desktop-PC
@@ -101,19 +238,543 @@
 
 
 [[uebersicht-aller-stoer]]
-=== Übersicht aller Störungsmeldungen
+=== Übersicht der Störungsmeldungen
+
+Die Übersichtsseite stellt standardmäßig alle Störungsmeldungen in einer Liste dar.
+Bei Bedarf können die Störungsmeldungen aber auch in einer Kartenansicht angezeigt werden.
+
+.Schaltfläche zum Umschalten zwischen Listen- und Kartenansicht
+image::Liste-Karte.png[]
+
+==== Listen-Ansicht
+Das Modul startet immer in der Listenansicht:
+
+.Übersicht aller Störungsmeldungen in der Listenansicht
+image::Listenansicht.png[]
+
+Die Übersicht zeigt zu jeder Störungsmeldung folgende Informationen an.
+Die Bedeutung der Felder ist im Abschnitt <<stoerung-ansicht-bearbeitung>> beschrieben.
+
+.Felder in der Listenansicht
+[options="header"]
+|=========================================================
+|Feld
+|Klassifikation
+|Zuständigkeit
+|Beschreibung
+|Status (intern)
+|Status (extern)
+|Veröffentlichungsstatus
+|Sparte
+|Spannungsebene
+|Druckstufe
+|Störungsbeginn (gemeldet)
+|Störungsende (geplant)
+|Störungsende (wiederversorgt)
+|Voraussichtlicher Grund
+|Interne Bemerkungen
+|Postleitzahl
+|Ort (betroffene Orte)
+|Ortsteil
+|Straße (betroffene Straße)
+|Hausnummer
+|Radius in m
+|Station(en)
+|=========================================================
+
+Jede Störungsmeldung kann abhängig von der Benutzerrolle und dem internen Bearbeitungsstatus
+direkt aus der Liste angezeigt oder bearbeitet werden. In diesem Fällen öffnet
+sich die <<stoerung-ansicht-bearbeitung, Detailansicht einer Störungsmeldung>>.
+
+.Auge-Symbol zum Anzeigen einer Störungsmeldung
+image::auge-symbol.png[]
+
+.Stift-Symbol zum Bearbeiten einer Störungsmeldung
+image::stift-symbol.png[]
+
+Ferner können Störungsmeldungen - ebenfalls abhängig von der Benutzerrolle
+und dem internen Bearbeitungsstatus -
+auch <<statuswechsel-stornieren,storniert>> oder <<stoerungsmeldung-loeschen,gelöscht>> werden.
+
+Mit den vordefinierten Filtern "TODO...", "TODO..." und "TODO...",
+sowie über die Filter der Liste selbst, können beliebige individuelle
+Filterkombinationen erstellt werden. Details dazu sind im Abschnitt
+<<allg-funktionen-uebersicht-aller-sm-filter>> beschrieben.
+
+
+Sollten mehrere Störungsmeldungen zu einer Störung gehören, so können diese
+über die Funktion "Verdichten" zusammengeführt werden. Details dazu sind
+im Abschnitt <<allg-funktionen-uebersicht-aller-sm-verdichten>> beschrieben.
+
+
+==== Karten-Ansicht
+Die Karte startet i.d.R. der Anzeige des Versorgungsgebiets.
+
+.Darstellung der Störungsmeldungen im entsprechenden Kartenausschnitt
+image::kartenansicht.png[]
+
+Einzelne Störungen sind jeweils mit einem Marker dargestellt:
+
+.Kennzeichnung einer Störung
+image::kartenansicht-pin.png[]
+
+Die Details einer Störung werden angezeigt, sobald sich der Mauszeiger
+über dem Marker befindet:
+
+.Anzeige von Details in Karte
+image::kartenansicht-mouseover.png[]
+
+Bei einem Klick auf den Marker öffnet sich die Detailansicht der
+zugehörigen Störungsmeldung, siehe Abschnitt <<stoerung-ansicht-bearbeitung>>.
+
+Der angezeigte Kartenausschnitt kann mittels der Maus individuell
+angepasst werden:
+
+* Linke Maustaste und ziehen: Verschieben des Kartenausschnitts
+* Drehen am Mausrad: Veränderung des Zoom-Faktors
+* Doppelklick linke Maustaste: Hineinzoomen
+
+
+[[stoerungsmeldung-erstellen]]
+==== Anlegen einer Störungsmeldung
+Ist ein Benutzer mit der Benutzerrolle "Erfasser" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Neue Störungsmeldung anlegen"
+eine neue Störungsmeldung anzulegen.
+
+.Schaltfläche zum Anlegen einer Störungsmeldung
+image::stoerung-erstellen.png[]
+
+Weitere Details zur Bearbeitung (oder Anlage) einer Störungsmeldung,
+siehe Abschnitt <<stoerung-ansicht-bearbeitung>>
+
+
+[[stoerungsmeldung-loeschen]]
+==== Löschen einer Störungsmeldung
+TODO: Diesen Abschnitt nach Umsetzung validieren
+
+TIP: Das Löschen einer Störungsmeldung ist nur in den internen Bearbeitungsstatus
+"neu" und "geplant" möglich.
+
+TODO: Ggf. Bild anpassen
+
+.Schaltfläche zum Löschen einer Störungsmeldung
+image::loeschen.png[]
+
+WARNING: Beim Löschen werden alle Informationen einer Störungsmeldung
+unwiederbringlich entfernt.
+
+Befindet sich die Störungsmeldung in einem anderen internen Bearbeitungsstatus,
+so ist die Funktion <<statuswechsel-stornieren,Stornieren>> zu verwenden.
+
+
+[[stoerung-ansicht-bearbeitung]]
+=== Ansicht und Bearbeitung einer Störungsmeldung
+
+Die Störungsmeldung teilt sich in mehrere Bereiche auf:
+
+. Störungsinformation
+. Störungsdetails
+. Störungsort
+
+==== Störungsinformation
+Die allgemeinen Informationen zu einer Störungsmeldung befinden sich im oberen Teil der Detailansicht.
+
+.Ansicht der Informationen zu einer Störungsmeldung
+image::stoerung-uebersicht.png[]
+
+Die Störungsinformation enthält folgende Attribute:
+
+.Attribute einer Störungsmeldung (Teil: Störungsinformation)
+[options="header"]
+|=========================================================
+|Attribut                  |Pflichtfeld(*) |Inhaltsart     |Beschreibung
+|Klassifikation            |nein           |Auswahlfeld
+a|
+* Störung
+* geplante Maßnahme
+
+|Sparte                    |ja             |Auswahlfeld
+a|
+
+* Strom
+* Gas
+* Wasser
+* Fernwärme
+* Telekommunikation
+* Sekundärtechnik
+* ohne Sparte
+
+|Status (intern)           |-              |Automatisch     |siehe <<uebersicht-bearbeitungsstatus-intern>>
+|Status (extern)           |-              |Automatisch     |siehe <<uebersicht-bearbeitungsstatus-extern>>
+|Veröffentlichungsstatus   |-              |Automatisch     |siehe <<uebersicht-veroeffentlichungsstatus>>
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel durchführen zu können.
+
+
+==== Störungsdetails
+Die Details zu einer Störungsmeldung befinden sich im mittleren Teil der Detailansicht.
+
+.Ansicht der Details zu einer Störungsmeldung
+image::stoerung-detail.png[]
+
+Die Störungsdetails enthalten folgende Attribute:
+
+.Attribute einer Störungsmeldung (Teil: Störungsdetails)
+[options="header"]
+|=========================================================
+|Attribut                       |Pflichtfeld(*) |Inhaltsart     |Beschreibung
+|Zuständigkeit                  |nein            |Freitext       |Zuständiger Mitarbeiter, Bereich, etc.
+|Spannungsebene                 |ja              |Auswahlfeld
+a|
+Nur bei Sparte = Strom:
+
+* Hochspannung
+* Mittelspannung
+* Niederspannung
+
+|Druckstufe                     |nein            |Auswahlfeld
+a|
+Nur bei Sparte = Gas:
+
+* Hochdruck
+* Mitteldruck
+* Niederdruck
+
+|Störungsbeginn (gemeldet)      |ja              |Datum/Uhrzeit  |Startzeitpunkt der Störung
+|Störungsende (wiederversorgt)  |nein            |Datum/Uhrzeit  |Behebungszeitpunkt der Störung
+|Voraussichtlicher Grund        |ja              |Auswahlfeld
+a|
+ * Defekt technische Anlage
+ * Leitung beschädigt
+ * noch nicht bekannt
+ * Überregionale Störung
+ * Kabelfehler Mittelspannung (nur bei Strom)
+ * Kabelfehler Niederspannung (nur bei Strom)
+
+|Beschreibung                   |nein            |Freitext       |Beschreibung der Störung
+|Interne Bemerkungen            |nein            |Freitext       |Zusätzliche Hinweise der Bearbeiter
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel durchführen zu können.
+
+==== Störungsort
+Der Ort einer Störungsmeldung ist im unteren Teil der Detailansicht zu erfassen.
+Das kann auf drei unterschiedliche Arten erfolgen, wobei jeweils nur eine Art Anwendung finden darf:
+
+. Adresse
+. Karte
+. Stationsattribute (nur bei Sparte = Strom und Spannungsebene = Mittelspannung ODER Sparte = Telekommunikation)
+
+Über die folgende Schaltfläche kann zwischen den Arten der Orterfassung gewechselt werden:
+
+.Schaltfläche zur Auswahl der Ortserfassung
+image::ortserfassung.png[]
+
+WARNING: Beim Wechsel der Erfassungsart gehen alle bisherigen Eingaben zum Störungsort ohne Hinweis zurückgesetzt.
+
+
+===== Adresse
+Die Erfassung über die Adresse kommt immer dann zum Einsatz, wenn ein
+entsprechender Anschluss vorhanden ist, der der Störung eindeutig zugeordnet werden kann.
+
+.Ansicht der Ortserfassung über Adresse
+image::ort-adresse.png[]
+
+Zur Adresse gehören folgende Attribute:
+
+.Attribute einer Störungsmeldung (Teil: Störungsort über Adresse)
+[options="header"]
+|=========================================================
+|Attribut                   |Pflichtfeld(*) |Inhaltsart     |Beschreibung
+|Postleitzahl               |ja             |Zahl           |Postleitzahl des Störungsortes
+|Ort (betroffene Orte)      |ja             |Auswahlfeld    |Auswahllisteneinträge abhängig von der ausgewählten Postleitzahl
+|Ortsteil                   |ja             |Auswahlfeld    |Auswahllisteneinträge abhängig vom ausgewählten Ort
+|Straße (betroffene Straße) |ja             |Auswahlfeld    |Auswahllisteneinträge abhängig vom ausgewählten Ortsteil
+|Hausnummer                 |ja             |Auswahlfeld    |Auswahllisteneinträge abhängig von der ausgewählten Straße
+|Radius in Meter            |ja             |Auswahlfeld
+a|
+Darstellung eines Kreises um den Störungsort mit dem ausgewählten Radius in Meter:
+
+ * 0
+ * 50
+ * 100
+ * 250
+ * 500
+ * 1.000
+ * 1.500
+ * 2.000
+
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel durchführen zu können.
+
+Während der Erfassung des Ortes erscheint nach Eingabe des zweiten Buchstabens eine Liste von Orten.
+Es dürfen ausschließlich - in der Liste vorhandene - Orte eingetragen werden.
+
+TIP: Bei der Eingabe des Ortes werden nur gültige Orte und Postleitzahlen vorgeschlagen.
+D.h. bei vorheriger Auswahl der Sparte Strom sind nur Orte und Postleitzahlen für Stromanschlüsse sichtbar.
+Das Gleiche gilt auch für alle anderen Sparten.
+
+
+===== Karte
+Die Erfassung über die Karte kommt immer dann zum Einsatz, wenn Störungen keiner
+Adresse zugeordnet werden können, z.B. weil die Störung auf einer Grünfläche zwischen
+zwei Orten aufgetreten ist.
+
+.Ansicht der Ortserfassung über Karte
+image::ort-karte.png[]
+
+Mit einem Mausklick auf die entsprechende Stelle auf der Karte wird eine Markierung
+für den Störungsort gesetzt. Dies kann beliebig oft durchgeführt werden, bis der
+Punkt genau getroffen wurde.
+
+Die Darstellung des Störungsortes erfolgt mit dem gleichen Marker, wie in allen anderen
+Kartendarstellung auch.
+
+
+===== Stationsattribute
+TIP: Die Stationsattribute stehen nur zur Verfügung, wenn Sparte = Strom und
+Spannungsebene = Mittelspannung ODER Sparte = Telekommunikation ausgewählt ist.
+
+Die Erfassung über die Stationsattribute kommt dann zum Einsatz, wenn
+es sich um Mittelspannungsstörungen handelt. Hierbei sind die relevanten
+Stationen zu erfassen.
+
+.Ansicht der Ortserfassung über Stationsattribute
+image::ort-station.png[]
+
+Während der Erfassung der Station (Straßenname oder Stationsnummer) erscheint
+nach Eingabe der zweiten Zahl bzw. des zweiten Buchstabens eine Liste mit Stationen.
+Es können ausschließlich in der Liste vorhandene Stationen ausgewählt werden.
+
+Nach Auswahl einer Station wird diese in der Karte dargestellt. Zusätzlich wird
+das Gebiet mit den zugeordneten Hausanschlüssen in Form eines Polygons umrahmt.
+Bei der Auswahl mehrerer Stationen wird die zugrundeliegenden Bereiche miteinander
+vereint, sofern diese geographisch nebeneinander liegen.
+
+TIP: Das Gebiet wird nur umrandet, wenn der/den ausgewählten Station(en) entsprechende
+Hausanschlüsse zugeordnet sind.
+
+
+[[veroeffentlichung]]
+==== Veröffentlichung
 
 TODO
 
-=== Störungsmeldung: Basis-Informationen
+TODO: Folgenden Hinweis einarbeiten
+Man könnte den Hinweis unterbringen, dass eine Veröffentlichung über einen Kanal
+wie E-Mail nur dann Sinn macht, wenn auch mindestens eine Verteilergruppe ausgewählt
+ist, die einen Kontakt mit einer E Mailadresse beinhaltet, sodass mindestens eine
+E Mailadresse gibt, an die eine Benachrichtigung geschickt werden kann.
+
+[[uebersicht-verteilergruppen]]
+=== Übersicht der Verteilergruppen
 
 TODO
 
-=== Störungsmeldung: Detail-Informationen
+[[anlegen-verteilergruppe]]
+==== Anlegen einer Verteilergruppe
 
 TODO
 
 
+[[löschen-verteilergruppe]]
+==== Löschen einer Verteilergruppe
+
+TODO
+
+TODO: Hinweis von Frau Salbeck einarbeiten
+Es können einzelne Verteiler aus dem Veröffentlichungsprozess herausgenommen werden,
+ohne dass diese eine Nachricht darüber erhalten.
+
+
+[[bearbeitung-verteilergruppen]]
+=== Ansicht und Bearbeiten einer Verteilergruppe
+
+TODO
+
+
+<<<
+
+== Weitere Funktionen
+
+
+[[allg-funktionen-uebersicht-aller-sm]]
+=== Zur: Übersicht der Störungsmeldungen
+
+[[allg-funktionen-uebersicht-aller-sm-filter]]
+==== Vordefinierte Filter (Kennzahlen)
+
+TODO
+
+[[allg-funktionen-uebersicht-aller-sm-verdichten]]
+==== Verdichten von Störungsmeldungen
+Sofern mehrere Störungsmeldungen auf dieselbe Störung zurückzuführen sind,
+können diese über die Verdichten-Funktion zusammengeführt werden.
+
+TIP: Es können nur Störungsmeldungen der gleichen Sparte verdichtet werden.
+
+Dazu ist in der Übersicht der Störungsmeldungen die Schaltfläche "Verdichtung"
+zu betätigen.
+
+.Übersicht der Störungsmeldungen
+image::verdichten-1.png[]
+
+Anschließend öffnet sich unter der Schaltfläche "Verdichtung" der Bereich
+mit den ausgewählten bzw. verdichteten Störungsmeldungen.
+Des Weiteren werden alle - noch nicht verdichteten - Störungsmeldungen
+in der Listenansicht mit einem "+" angezeigt.
+
+[[verdichten-2]]
+.Auswahl von Störungsmeldungen zum Verdichten
+image::verdichten-2.png[]
+
+Nun sind die entsprechenden Störungsmeldungen über das "+"-Symbol auszuwählen.
+Diese erscheinen dann unmittelbar in der obigen Tabelle mit den zu verdichtenden
+Störungsmeldungen. Bereits Hinzugeführte können über das "-"-Symbol wieder
+entfernt werden:
+
+[[verdichten-3]]
+.Selektierte Störungsmeldungen zum Verdichten
+image::verdichten-3.png[]
+
+Mit einem Klick auf die Schaltfläche "Ausgewählte Meldungen verdichten" wird
+eine neue Störungsmeldung erzeugt (rot umrandet in folgender Abbildung). Die
+blau hinterlegte Zahl zeigt die Anzahl der verdichteten Störungsmeldungen an:
+
+.Neue erstellte Störungsmeldung (nach Verdichtung)
+image::verdichten-4.png[]
+
+Bei der Erstellung der neuen Störungsmeldungen werden initial die Grunddaten der
+verdichteten Störungsmeldungen übernommen:
+
+* Sparte
+* Spannungsebene bzw. Druckstufe: Wenn bei allen verdichten Meldungen gleich, sonst leer
+* Störungsbeginn (gemeldet): Das frühste Datum der verdichteten Meldungen
+* Störungsende (geplant): Das späteste Datum der verdichteten Meldungen
+
+Zudem wird der interne Bearbeitungsstatus auf "neu" gesetzt.
+
+Alle Anpassungen und Aktualisierungen bzgl. dieser Störung sind fortan nur
+noch an dieser neuen Störungsmeldung vorzunehmen.
+
+INFO: Die verdichteten Meldungen werden nach Aktualisierung der übergeordneten
+Störungsmeldung nicht synchronisiert. Die einzige Ausnahme ist, wenn der
+interne Bearbeitungsstatus auf "beendet" wird. Dann werden auch die untergeordneten
+Störungsmeldungen auf "beendet" gesetzt.
+
+Nach der Verdichtung und Erzeugung der übergeordneten Störungsmeldung müssen die
+Informationen zur Störung manuell ergänzt werden. Dies erfolgt genauso, wie die
+Bearbeitung aller anderen Störungsmeldungen auch, siehe Abschnitt
+<<stoerung-ansicht-bearbeitung>>.
+
+Um die verdichteten Störungsmeldungen nachträglich anzupassen, nämlich
+
+* Weitere Störungsmeldungen hinzufügen,
+* Ausgewählte Störungsmeldungen entfernen,
+
+ist ein Klick auf die blau hinterlegte Zahl notwendig. Anschließend öffnet sich
+der Bereich mit den ausgewählten Störungsmeldungen. Hier können die einzelnen
+Meldungen über die bekannten Symbole bearbeitet werden.
+
+.Verdichtete Störungsmeldungen bearbeiten
+image::verdichten-5.png[]
+
+Nach einem Klick auf "Verdichtung bearbeiten" erscheint wieder die Ansicht
+zum Hinzufügen und Entfernen von Störungsmeldungen, siehe Abbildung <<verdichten-3>>
+
+
+=== Zur: Ansicht und Bearbeitung einer Störungsmeldung
+
+==== Ansichts- und Bearbeitungsmodus
+Je nach Benutzerrolle ist eine Störungsmeldung zur Ansicht oder zur Bearbeitung
+geöffnet.
+
+===== Ansichtsmodus
+Im Ansichtsmodus können keine Daten verändert werden. Deshalb ist lediglich die Schaltfläche
+Abbrechen sichtbar.
+
+.Schaltfläche Abbrechen
+image::abbrechen.png[]
+
+===== Bearbeitungsmodus
+Wird im Bearbeitungsmodus die Schaltfläche "Abbrechen" betätigt, nachdem Änderungen
+vorgenommen wurden, erscheint eine zusätzliche Abfrage:
+
+.Meldung bei geänderten Daten nach Klick auf Abbrechen
+image::meldung-nach-abbrechen.png[]
+
+Im Bearbeitungsmodus steht zusätzlich die Schaltfläche Speichern zur Verfügung.
+
+.Schaltfläche Speichern
+image::speichern.png[]
+
+Des Weiteren existieren zusätzlich Schaltflächen, um den internen
+Bearbeitungsstatus zu ändern. Details dazu befinden sich im
+Abschnitt <<statuswechsel>>.
+
+
+[[statuswechsel]]
+==== Statuswechsel durchführen
+
+[[statuswechsel-allgemein]]
+===== Allgemeine Statuswechsel des internen Bearbeitungsstatus
+Statuswechsel ist abhängig von der Benutzerrolle und dem aktuellen internen
+Bearbeitungsstatus. Als Beispiel ist im Folgenden die Schaltfläche für den
+Statuswechsel nach "angelegt" dargestellt. Die weiteren internen Bearbeitungsstatus
+sind im Abschnitt <<uebersicht-bearbeitungsstatus-intern>> ersichtlich.
+
+.Schaltfläche zum Wechsel des internen Bearbeitungsstatus auf "anlegen"
+image::anlegen.png[]
+
+[[statuswechsel-stornieren]]
+===== Stornieren von Störungsmeldungen
+Das Stornieren eines Störungsmeldung erfolgt ebenfalls in der Detailansicht
+über die Schaltfläche "Stornieren".
+
+TODO: Bild einfügen
+
+.Schaltfläche zum Stornieren einer Störungsmeldung
+image::stornieren.png[]
+
+Durch das Stornieren erhält die Störungsmeldung den internen Bearbeitungstatus
+"storniert". Gleichzeitig wird der Veröffentlichungsstatus auf "zurückgezogen"
+gesetzt.
+
+
+[[statuswechsel-ext-Status]]
+===== Statuswechsel des externen Bearbeitungsstatus
+Die Statuswechsel des externen Bearbeitungsstatus erfolgen automatisch gemäß
+den Vorgaben aus Abschnitt <<uebersicht-bearbeitungsstatus-extern>>.
+
+
+[[statuswechsel-veroffentlichung]]
+===== Statuswechsel des Veröffentlichungsstatus
+
+TODO
+
+[[versionierung]]
+==== Versionierung
+Jede gespeicherte Änderung an einer Störungsmeldung wird in einer
+neuen Version, unter Angabe des Bearbeiters und Datum/Uhrzeit, abgelegt.
+Auswählbar sind die einzelnen Versionen in der Detailansicht einer Störungsmeldung:
+
+.Anzeige der Version einer Störungsmeldung
+image::versionierung-1.png[]
+
+Standardmäßig ist die aktuellste Version ausgewählt. Je nach
+Bearbeitungsstatus und Benutzerrolle kann die Störungsmeldung
+bearbeitbar sein.
+
+Zur Ansicht einer älteren Version muss lediglich die Versionsnummer
+in der Auswahlliste angeklickt werden. Anschließend werden die
+entsprechenden Einträge schreibgeschützt angezeigt:
+
+.Anzeige einer älteren Version einer Störungsmeldung (schreibgeschützt)
+image::versionierung-2.png[]
+
+
 <<<
 
 == Schnittstellen
@@ -124,8 +785,17 @@
 
 === Export von Störungsmeldungen
 
+[[Mail]]
+==== Mail
+
 TODO
 
+[[stoerungsauskunft]]
+==== Störungsauskunft.de
+
+TODO
+
+
 <<<
 
 == Benachrichtigungen und Erinnerungen
@@ -137,29 +807,66 @@
 
 [[meldungen-hinweise]]
 === Hinweise und Meldungen nach Benutzeraktionen
+Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:
 
-TODO
+* Handlungsanweisungen zu geben,
+* über Fehler des Systems zu informieren.
 
-<<<
+==== Erfolg einer Aktion
+Ist eine Benutzeraktion erfolgreich, so erscheint keine Meldung.
 
-== Allgemeine Funktionen
+==== Handlungsanweisung
+In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:
+
+* Fehlenden Informationen (Pflichtfelder füllen)
 
 
-[[allg-funktionen-uebersicht-aller-stoer]]
-=== In der Übersicht aller Störungsmeldungen
+.Hinweis Pflichtfelder
+image::meldung-hinweis.png[]
 
-TODO
+Diese Meldungen bleiben für einige Sekunden sichtbar und verschwinden dann wieder
+automatisch.
 
-=== Bei der Bearbeitung von Störungsmeldungen
+==== Fehlermeldungen
+Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:
 
-TODO
+* Speichern fehlgeschlagen
+* Web Services nicht verfügbar
 
-=== Weitere Funktionen
+.Fehlermeldung
+image::meldung-fehler.png[]
 
-==== Modul "Störungsinformation" aus Portal starten
+Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer durch einfaches
+Anklicken geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.
 
-TODO
+== An- und Abmeldung
 
-==== Abmelden
+=== Modul "Störungsinformationstool" aus Portal starten
+Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Störungsinformationstool" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Störungsinformationstool"
+in einem neuen Fenster bzw. in einem neuen Tab des selben Browserfensters (je nach
+Browsereinstellung).
 
-TODO
+.Kachel zum Starten des Moduls "Störungsinformationstool"
+image::oeffnen-modul.png[]
+
+=== Abmelden
+Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.
+
+.Abmelden vom openKONSEQUENZ-System
+image::abmelden.png[]
+
+CAUTION: Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul
+Störungsinformationstool, sondern die Abmeldung vom Portal. D.h. alle parallel
+geöffneten openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Geplante
+Netzmaßnahme) werden automatisch mit abgemeldet.
+
+Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Störungsinformationstool zu schließen.
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
new file mode 100644
index 0000000..33d40d2
--- /dev/null
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
@@ -0,0 +1,2212 @@
+  <html>
+    <head>
+      <meta charset="utf-8">
+      <title>Benutzerhandbuch: openKONSEQUENZ StörungsinformationstoolCreate Repository</title>
+      <style>
+        #wrapper {width: 960px; margin: 0 auto;}
+        /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
+/* Uncomment @import statement to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
+audio,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:none}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:0}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt{background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+:not(pre)>code.nobreak{word-wrap:normal}
+:not(pre)>code.nowrap{white-space:nowrap}
+pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
+pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
+pre>code{display:block}
+pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
+#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #e7e7e9}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
+@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
+.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
+.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.prettyprint{background:#f7f7f8}
+pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
+pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
+pre.prettyprint li code[data-lang]::before{opacity:1}
+pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
+table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
+table.linenotable td.code{padding-left:.75em}
+table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
+pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
+pre.pygments .lineno::before{content:"";margin-right:-.125em}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
+.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.excerpt,.quoteblock .quoteblock{margin:0 0 1.25em;padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
+.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
+.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content>:last-child{margin-bottom:-1.25em}
+td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left{margin:.25em .625em 1.25em 0}
+.imageblock.right{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background:#00fafa}
+.black{color:#000}
+.black-background{background:#000}
+.blue{color:#0000bf}
+.blue-background{background:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background:#fa00fa}
+.gray{color:#606060}
+.gray-background{background:#7d7d7d}
+.green{color:#006000}
+.green-background{background:#007d00}
+.lime{color:#00bf00}
+.lime-background{background:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background:#7d0000}
+.navy{color:#000060}
+.navy-background{background:#00007d}
+.olive{color:#606000}
+.olive-background{background:#7d7d00}
+.purple{color:#600060}
+.purple-background{background:#7d007d}
+.red{color:#bf0000}
+.red-background{background:#fa0000}
+.silver{color:#909090}
+.silver-background{background:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
+
+      </style>
+      <link href='https://fonts.googleapis.com/css?family=Noto+Serif' rel='stylesheet' type='text/css'>
+      <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
+      <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
+      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/default.min.css">
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/asciidoc.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/yaml.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/dockerfile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/makefile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/go.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/rust.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/haskell.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/typescript.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scss.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/less.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/handlebars.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/groovy.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scala.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/bash.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/ini.min.js"></script>
+      <script>hljs.initHighlightingOnLoad();</script>
+    </head>
+    <body>
+      <div id="wrapper">
+        <div class="article">
+          <h1>Benutzerhandbuch: openKONSEQUENZ Störungsinformationstool</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div style="page-break-after: always;"></div>
+<div class="ulist">
+<ul>
+<li>
+<p>Version: 0.2</p>
+</li>
+<li>
+<p>Datum: 03.07.2020</p>
+</li>
+<li>
+<p>Status: In Bearbeitung</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+<!-- toc disabled -->
+<div style="page-break-after: always;"></div>
+</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_sinn_und_zweck_des_moduls_störungsinformationstool">1. Sinn und Zweck des Moduls Störungsinformationstool</a></li>
+<li><a href="#_übersicht">2. Übersicht</a>
+<ul class="sectlevel2">
+<li><a href="#uebersicht-benutzerrollen">2.1. Benutzerrollen</a></li>
+<li><a href="#_status">2.2. Status</a></li>
+<li><a href="#_prozessablauf">2.3. Prozessablauf</a></li>
+</ul>
+</li>
+<li><a href="#_benutzerdialoge">3. Benutzerdialoge</a>
+<ul class="sectlevel2">
+<li><a href="#uebersicht-aller-stoer">3.1. Übersicht der Störungsmeldungen</a></li>
+<li><a href="#stoerung-ansicht-bearbeitung">3.2. Ansicht und Bearbeitung einer Störungsmeldung</a></li>
+<li><a href="#uebersicht-verteilergruppen">3.3. Übersicht der Verteilergruppen</a></li>
+<li><a href="#bearbeitung-verteilergruppen">3.4. Ansicht und Bearbeiten einer Verteilergruppe</a></li>
+</ul>
+</li>
+<li><a href="#_weitere_funktionen">4. Weitere Funktionen</a>
+<ul class="sectlevel2">
+<li><a href="#allg-funktionen-uebersicht-aller-sm">4.1. Zur: Übersicht der Störungsmeldungen</a></li>
+<li><a href="#_zur_ansicht_und_bearbeitung_einer_störungsmeldung">4.2. Zur: Ansicht und Bearbeitung einer Störungsmeldung</a></li>
+</ul>
+</li>
+<li><a href="#_schnittstellen">5. Schnittstellen</a>
+<ul class="sectlevel2">
+<li><a href="#_import_von_störungsmeldungen">5.1. Import von Störungsmeldungen</a></li>
+<li><a href="#_export_von_störungsmeldungen">5.2. Export von Störungsmeldungen</a></li>
+</ul>
+</li>
+<li><a href="#_benachrichtigungen_und_erinnerungen">6. Benachrichtigungen und Erinnerungen</a>
+<ul class="sectlevel2">
+<li><a href="#email-benachrichtigung-statuswechsel">6.1. eMail-Benachrichtigung bei Statuswechsel</a></li>
+<li><a href="#meldungen-hinweise">6.2. Hinweise und Meldungen nach Benutzeraktionen</a></li>
+</ul>
+</li>
+<li><a href="#_an_und_abmeldung">7. An- und Abmeldung</a>
+<ul class="sectlevel2">
+<li><a href="#_modul_störungsinformationstool_aus_portal_starten">7.1. Modul "Störungsinformationstool" aus Portal starten</a></li>
+<li><a href="#_abmelden">7.2. Abmelden</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_sinn_und_zweck_des_moduls_störungsinformationstool"><a class="anchor" href="#_sinn_und_zweck_des_moduls_störungsinformationstool"></a>1. Sinn und Zweck des Moduls Störungsinformationstool</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Das Modul Störungsinformationstool ist ein User-Modul der openKONSEQUENZ.</p>
+</div>
+<div class="paragraph">
+<p>Mit diesem Modul hat ein Netzbetreiber jederzeit alle Störungsmeldungen
+inklusive der aktuellen Status im Überblick.</p>
+</div>
+<div class="paragraph">
+<p>Dabei wird jede Störungsmeldung durch einen
+vordefinierten Prozess von der manuellen Erfassung oder dem automatischen Import
+über die Veröffentlichung bis zur Beseitigung der Störung unterstützt.
+Die Zuständigkeiten im Prozess sind durch verschiedene Benutzerrollen klar
+geregelt.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_übersicht"><a class="anchor" href="#_übersicht"></a>2. Übersicht</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="uebersicht-benutzerrollen"><a class="anchor" href="#uebersicht-benutzerrollen"></a>2.1. Benutzerrollen</h3>
+<div class="paragraph">
+<p>Zur Bearbeitung von Störungsmeldungen sind verschiedene Benutzerrollen
+definiert, deren Aufgaben (Berechtigungen) in den folgenden Unterabschnitten
+aufgelistet sind:</p>
+</div>
+<div class="paragraph">
+<p>TODO: Frage: Wer darf Verteilergruppen anlegen und bearbeiten?</p>
+</div>
+<div class="sect3">
+<h4 id="_erfasser"><a class="anchor" href="#_erfasser"></a>2.1.1. Erfasser</h4>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-stoer">Darf alle Störungsmeldungen sehen</a></p>
+</li>
+<li>
+<p><a href="#stoerungsmeldung-erstellen">Darf Störungsmeldungen anlegen</a></p>
+</li>
+<li>
+<p><a href="#stoerung-ansicht-bearbeitung">Darf Störungsmeldungen im internen Bearbeitungsstatus "neu" und "geplant" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#stoerung-ansicht-bearbeitung">Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Wechsel des internen Bearbeitungsstatus von "neu" nach "angelegt" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Wechsel des internen Bearbeitungsstatus von "geplant" nach "angelegt" durchführen</a></p>
+</li>
+<li>
+<p><a href="#stoerungsmeldung-loeschen">Darf Störungsmeldungen im Status "neu" und "geplant" löschen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_qualifizierer"><a class="anchor" href="#_qualifizierer"></a>2.1.2. Qualifizierer</h4>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-stoer">Darf alle Störungsmeldungen sehen</a></p>
+</li>
+<li>
+<p><a href="#stoerung-ansicht-bearbeitung">Darf Störungsmeldungen im internen Bearbeitungsstatus "angelegt" und "aktualisiert" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#stoerung-ansicht-bearbeitung">Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#allg-funktionen-uebersicht-aller-sm-verdichten">Darf Störungsmeldungen verdichten</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Wechsel des internen Bearbeitungsstatus von "angelegt" nach "qualifiziert" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Wechsel des internen Bearbeitungsstatus von "qualifiziert" nach "aktualisiert" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Wechsel des internen Bearbeitungsstatus von "aktualisiert" nach "qualifiziert" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf Störungsmeldungen abschließen (Wechsel des internen Bearbeitungsstatus auf "beendet")</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Störungsmeldungen stornieren (Wechsel des internen Bearbeitungsstatus auf "storniert")</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_veröffentlicher"><a class="anchor" href="#_veröffentlicher"></a>2.1.3. Veröffentlicher</h4>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-stoer">Darf alle Störungsmeldungen sehen</a></p>
+</li>
+<li>
+<p><a href="#stoerung-ansicht-bearbeitung">Darf Störungsmeldungen im internen Bearbeitungsstatus "qualifiziert" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#allg-funktionen-uebersicht-aller-sm-verdichten">Darf Störungsmeldungen verdichten</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-veroffentlichung">Darf Störungsmeldungen veröffentlichen (Veröffentlichungsstatus ändern)</a></p>
+</li>
+<li>
+<p>Darf Verteilgruppen anlegen</p>
+</li>
+<li>
+<p>Darf Email-Vorlagen bearbeiten</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_gast"><a class="anchor" href="#_gast"></a>2.1.4. Gast</h4>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-stoer">Darf alle Störungsmeldungen sehen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_administrator"><a class="anchor" href="#_administrator"></a>2.1.5. Administrator</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>Darf alles</p>
+</li>
+<li>
+<p>Darf zusätzlich Konfigurationen vornehmen (Details sind in technischer Dokumentation beschrieben)</p>
+<div class="ulist">
+<ul>
+<li>
+<p>TODO prüfen: Mailvorlagen für Benachrichtigungen (bei Ziel-Status "Genehmigt", "Storniert", "Zurückgewiesen")</p>
+</li>
+<li>
+<p>TODO prüfen: Basis eMail-Verteilerlisten</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>TODO: ergänzen</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_status"><a class="anchor" href="#_status"></a>2.2. Status</h3>
+<div class="sect3">
+<h4 id="uebersicht-bearbeitungsstatus-intern"><a class="anchor" href="#uebersicht-bearbeitungsstatus-intern"></a>2.2.1. Bearbeitungsstatus (intern)</h4>
+<div class="paragraph">
+<p>Zur Bearbeitung von Störungsmeldungen sind folgende (internen) Bearbeitungsstatus
+definiert:</p>
+</div>
+<div class="sect4">
+<h5 id="_neu"><a class="anchor" href="#_neu"></a>2.2.1.1. Neu</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung befindet sich in der manuellen Erst-Erfassung.</p>
+</li>
+<li>
+<p>Die Störungsmeldung enthält u.U. noch nicht alle erforderlichen Informationen.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_geplant"><a class="anchor" href="#_geplant"></a>2.2.1.2. Geplant</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist automatisch über eine Schnittstelle erzeugt worden.</p>
+</li>
+<li>
+<p>Der Störungsbeginn liegt in der Zukunft (geplante Maßnahme).</p>
+</li>
+<li>
+<p>Eine manuelle Bearbeitung der Störungsmeldung ist notwendig.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_angelegt"><a class="anchor" href="#_angelegt"></a>2.2.1.3. Angelegt</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Der Erfassungsvorgang ist vollständig abgeschlossen.</p>
+</li>
+<li>
+<p>Die Störungsmeldung enthält alle erforderlichen Informationen.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_qualifiziert"><a class="anchor" href="#_qualifiziert"></a>2.2.1.4. Qualifiziert</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist im Vier-Augen-Prinzip geprüft.</p>
+</li>
+<li>
+<p>Die Störungsmeldung ist ggf. um weitere Informationen ergänzt.</p>
+</li>
+<li>
+<p>Die Störungsmeldung ist ggf. verdichtet.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_aktualisiert"><a class="anchor" href="#_aktualisiert"></a>2.2.1.5. Aktualisiert</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung wurde nachträglich bearbeitet/verändert.</p>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Hinweis:</div>
+<ul>
+<li>
+<p>Die Störungsmeldung befand sich zum Zeitpunkt der Bearbeitung im Status "qualifiziert".</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_abgeschlossen"><a class="anchor" href="#_abgeschlossen"></a>2.2.1.6. Abgeschlossen</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störung ist behoben.</p>
+</li>
+<li>
+<p>Die Störungsmeldung ist nur noch im Lesemodus verfügbar.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_storniert"><a class="anchor" href="#_storniert"></a>2.2.1.7. Storniert</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist storniert.</p>
+</li>
+<li>
+<p>Die Störungsmeldung ist nur noch im Lesemodus verfügbar.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="uebersicht-veroeffentlichungsstatus"><a class="anchor" href="#uebersicht-veroeffentlichungsstatus"></a>2.2.2. Veröffentlichungsstatus</h4>
+<div class="paragraph">
+<p>Für die Veröffentlichung von Störungsmeldungen sind folgende Veröffentlichungsstatus
+definiert:</p>
+</div>
+<div class="sect4">
+<h5 id="_nicht_gesetzt"><a class="anchor" href="#_nicht_gesetzt"></a>2.2.2.1. Nicht gesetzt</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Initialer Status einer (manuell oder automatisch) neu-angelegten Störungsmeldung</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_nicht_öffentlich"><a class="anchor" href="#_nicht_öffentlich"></a>2.2.2.2. Nicht öffentlich</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist nicht für die Öffentlichkeit sichtbar.</p>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Hinweis:</div>
+<ul>
+<li>
+<p>Die Störungsmeldung war zu keinem Zeitpunkt für die Öffentlichkeit sichtbar.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_öffentlich"><a class="anchor" href="#_öffentlich"></a>2.2.2.3. Öffentlich</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist für die Öffentlichkeit sichtbar.</p>
+</li>
+<li>
+<p>Die Veröffentlichung erfolgt über ausgewählte Kanäle</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_zurückgezogen"><a class="anchor" href="#_zurückgezogen"></a>2.2.2.4. Zurückgezogen</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Die Störungsmeldung ist nicht mehr für die Öffentlichkeit sichtbar.</p>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Hinweis:</div>
+<ul>
+<li>
+<p>Die Störungsmeldung war eine gewisse Zeit für die Öffentlichkeit sichtbar.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="uebersicht-bearbeitungsstatus-extern"><a class="anchor" href="#uebersicht-bearbeitungsstatus-extern"></a>2.2.3. Bearbeitungsstatus (extern)</h4>
+<div class="paragraph">
+<p>Der externe Bearbeitungsstatus ist nur bei veröffentlichten Störungsmeldungen
+(d.h. Veröffentlichungsstatus = öffentlich) relevant.</p>
+</div>
+<div class="paragraph">
+<p>Der externe Bearbeitungsstatus leitet sich vom internen Bearbeitungsstatus
+in Kombination mit den Werten aus Störungsbeginn und -ende ab. Konkret bedeutet das
+für die einzelnen Statuszustände einer Störungsmeldung folgendes:</p>
+</div>
+<div class="sect4">
+<h5 id="_geplant_2"><a class="anchor" href="#_geplant_2"></a>2.2.3.1. Geplant</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Status (intern) = "qualifiziert"</p>
+</li>
+<li>
+<p>Störungsbeginn = noch nicht erreicht (liegt in der Zukunft)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_in_bearbeitung"><a class="anchor" href="#_in_bearbeitung"></a>2.2.3.2. In Bearbeitung</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Status (intern) = "qualifiziert"</p>
+</li>
+<li>
+<p>Störungsbeginn = ist erreicht (liegt in der Vergangenheit)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_beendet"><a class="anchor" href="#_beendet"></a>2.2.3.3. Beendet</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Status (intern) = "qualifiziert" oder “veröffentlicht”</p>
+</li>
+<li>
+<p>Störungsende = ist erreicht (liegt in der Vergangenheit)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>oder</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Status (intern) = "storniert" oder “abgeschlossen”</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_prozessablauf"><a class="anchor" href="#_prozessablauf"></a>2.3. Prozessablauf</h3>
+<div class="paragraph">
+<p>Der gesamte Prozessablauf zur Bearbeitung einer Störung
+ist im folgenden Prozessdiagramm dargestellt.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/20200421_Status%20und%20Rollen_v7.png" alt="20200421 Status und Rollen v7">
+</div>
+<div class="title">Figure 1. Prozessübersicht</div>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_benutzerdialoge"><a class="anchor" href="#_benutzerdialoge"></a>3. Benutzerdialoge</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Die Anwendung ist für folgende Endgeräte optimiert:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Desktop-PC</p>
+</li>
+<li>
+<p>Tablet</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Es sind folgende Browser unterstützt:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Google Chrome</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Die Bildschirmauflösung bzw. die Fenstergröße des Browsers sollte folgende Werte nicht unterschreiten:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>1.024 x 768 Pixel</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="uebersicht-aller-stoer"><a class="anchor" href="#uebersicht-aller-stoer"></a>3.1. Übersicht der Störungsmeldungen</h3>
+<div class="paragraph">
+<p>Die Übersichtsseite stellt standardmäßig alle Störungsmeldungen in einer Liste dar.
+Bei Bedarf können die Störungsmeldungen aber auch in einer Kartenansicht angezeigt werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/Liste-Karte.png" alt="Liste Karte">
+</div>
+<div class="title">Figure 2. Schaltfläche zum Umschalten zwischen Listen- und Kartenansicht</div>
+</div>
+<div class="sect3">
+<h4 id="_listen_ansicht"><a class="anchor" href="#_listen_ansicht"></a>3.1.1. Listen-Ansicht</h4>
+<div class="paragraph">
+<p>Das Modul startet immer in der Listenansicht:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/Listenansicht.png" alt="Listenansicht">
+</div>
+<div class="title">Figure 3. Übersicht aller Störungsmeldungen in der Listenansicht</div>
+</div>
+<div class="paragraph">
+<p>Die Übersicht zeigt zu jeder Störungsmeldung folgende Informationen an.
+Die Bedeutung der Felder ist im Abschnitt <a href="#stoerung-ansicht-bearbeitung">Ansicht und Bearbeitung einer Störungsmeldung</a> beschrieben.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 1. Felder in der Listenansicht</caption>
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Feld</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Klassifikation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zuständigkeit</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibung</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status (intern)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status (extern)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Veröffentlichungsstatus</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sparte</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Spannungsebene</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Druckstufe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Störungsbeginn (gemeldet)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Störungsende (geplant)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Störungsende (wiederversorgt)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Voraussichtlicher Grund</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Interne Bemerkungen</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Postleitzahl</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ort (betroffene Orte)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ortsteil</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Straße (betroffene Straße)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hausnummer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Radius in m</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Station(en)</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Jede Störungsmeldung kann abhängig von der Benutzerrolle und dem internen Bearbeitungsstatus
+direkt aus der Liste angezeigt oder bearbeitet werden. In diesem Fällen öffnet
+sich die <a href="#stoerung-ansicht-bearbeitung">Detailansicht einer Störungsmeldung</a>.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/auge-symbol.png" alt="auge symbol">
+</div>
+<div class="title">Figure 4. Auge-Symbol zum Anzeigen einer Störungsmeldung</div>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/stift-symbol.png" alt="stift symbol">
+</div>
+<div class="title">Figure 5. Stift-Symbol zum Bearbeiten einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Ferner können Störungsmeldungen - ebenfalls abhängig von der Benutzerrolle
+und dem internen Bearbeitungsstatus -
+auch <a href="#statuswechsel-stornieren">storniert</a> oder <a href="#stoerungsmeldung-loeschen">gelöscht</a> werden.</p>
+</div>
+<div class="paragraph">
+<p>Mit den vordefinierten Filtern "TODO&#8230;&#8203;", "TODO&#8230;&#8203;" und "TODO&#8230;&#8203;",
+sowie über die Filter der Liste selbst, können beliebige individuelle
+Filterkombinationen erstellt werden. Details dazu sind im Abschnitt
+<a href="#allg-funktionen-uebersicht-aller-sm-filter">Vordefinierte Filter (Kennzahlen)</a> beschrieben.</p>
+</div>
+<div class="paragraph">
+<p>Sollten mehrere Störungsmeldungen zu einer Störung gehören, so können diese
+über die Funktion "Verdichten" zusammengeführt werden. Details dazu sind
+im Abschnitt <a href="#allg-funktionen-uebersicht-aller-sm-verdichten">Verdichten von Störungsmeldungen</a> beschrieben.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_karten_ansicht"><a class="anchor" href="#_karten_ansicht"></a>3.1.2. Karten-Ansicht</h4>
+<div class="paragraph">
+<p>Die Karte startet i.d.R. der Anzeige des Versorgungsgebiets.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/kartenansicht.png" alt="kartenansicht">
+</div>
+<div class="title">Figure 6. Darstellung der Störungsmeldungen im entsprechenden Kartenausschnitt</div>
+</div>
+<div class="paragraph">
+<p>Einzelne Störungen sind jeweils mit einem Marker dargestellt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/kartenansicht-pin.png" alt="kartenansicht pin">
+</div>
+<div class="title">Figure 7. Kennzeichnung einer Störung</div>
+</div>
+<div class="paragraph">
+<p>Die Details einer Störung werden angezeigt, sobald sich der Mauszeiger
+über dem Marker befindet:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/kartenansicht-mouseover.png" alt="kartenansicht mouseover">
+</div>
+<div class="title">Figure 8. Anzeige von Details in Karte</div>
+</div>
+<div class="paragraph">
+<p>Bei einem Klick auf den Marker öffnet sich die Detailansicht der
+zugehörigen Störungsmeldung, siehe Abschnitt <a href="#stoerung-ansicht-bearbeitung">Ansicht und Bearbeitung einer Störungsmeldung</a>.</p>
+</div>
+<div class="paragraph">
+<p>Der angezeigte Kartenausschnitt kann mittels der Maus individuell
+angepasst werden:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Linke Maustaste und ziehen: Verschieben des Kartenausschnitts</p>
+</li>
+<li>
+<p>Drehen am Mausrad: Veränderung des Zoom-Faktors</p>
+</li>
+<li>
+<p>Doppelklick linke Maustaste: Hineinzoomen</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="stoerungsmeldung-erstellen"><a class="anchor" href="#stoerungsmeldung-erstellen"></a>3.1.3. Anlegen einer Störungsmeldung</h4>
+<div class="paragraph">
+<p>Ist ein Benutzer mit der Benutzerrolle "Erfasser" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Neue Störungsmeldung anlegen"
+eine neue Störungsmeldung anzulegen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/stoerung-erstellen.png" alt="stoerung erstellen">
+</div>
+<div class="title">Figure 9. Schaltfläche zum Anlegen einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Weitere Details zur Bearbeitung (oder Anlage) einer Störungsmeldung,
+siehe Abschnitt <a href="#stoerung-ansicht-bearbeitung">Ansicht und Bearbeitung einer Störungsmeldung</a></p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="stoerungsmeldung-loeschen"><a class="anchor" href="#stoerungsmeldung-loeschen"></a>3.1.4. Löschen einer Störungsmeldung</h4>
+<div class="paragraph">
+<p>TODO: Diesen Abschnitt nach Umsetzung validieren</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/tip.png" alt="Tip">
+</td>
+<td class="content">
+Das Löschen einer Störungsmeldung ist nur in den internen Bearbeitungsstatus
+"neu" und "geplant" möglich.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>TODO: Ggf. Bild anpassen</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/loeschen.png" alt="loeschen">
+</div>
+<div class="title">Figure 10. Schaltfläche zum Löschen einer Störungsmeldung</div>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/warning.png" alt="Warning">
+</td>
+<td class="content">
+Beim Löschen werden alle Informationen einer Störungsmeldung
+unwiederbringlich entfernt.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Befindet sich die Störungsmeldung in einem anderen internen Bearbeitungsstatus,
+so ist die Funktion <a href="#statuswechsel-stornieren">Stornieren</a> zu verwenden.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="stoerung-ansicht-bearbeitung"><a class="anchor" href="#stoerung-ansicht-bearbeitung"></a>3.2. Ansicht und Bearbeitung einer Störungsmeldung</h3>
+<div class="paragraph">
+<p>Die Störungsmeldung teilt sich in mehrere Bereiche auf:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Störungsinformation</p>
+</li>
+<li>
+<p>Störungsdetails</p>
+</li>
+<li>
+<p>Störungsort</p>
+</li>
+</ol>
+</div>
+<div class="sect3">
+<h4 id="_störungsinformation"><a class="anchor" href="#_störungsinformation"></a>3.2.1. Störungsinformation</h4>
+<div class="paragraph">
+<p>Die allgemeinen Informationen zu einer Störungsmeldung befinden sich im oberen Teil der Detailansicht.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/stoerung-uebersicht.png" alt="stoerung uebersicht">
+</div>
+<div class="title">Figure 11. Ansicht der Informationen zu einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Die Störungsinformation enthält folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 2. Attribute einer Störungsmeldung (Teil: Störungsinformation)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Klassifikation</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Störung</p>
+</li>
+<li>
+<p>geplante Maßnahme</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sparte</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Strom</p>
+</li>
+<li>
+<p>Gas</p>
+</li>
+<li>
+<p>Wasser</p>
+</li>
+<li>
+<p>Fernwärme</p>
+</li>
+<li>
+<p>Telekommunikation</p>
+</li>
+<li>
+<p>Sekundärtechnik</p>
+</li>
+<li>
+<p>ohne Sparte</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status (intern)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">siehe <a href="#uebersicht-bearbeitungsstatus-intern">Bearbeitungsstatus (intern)</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status (extern)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">siehe <a href="#uebersicht-bearbeitungsstatus-extern">Bearbeitungsstatus (extern)</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Veröffentlichungsstatus</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">siehe <a href="#uebersicht-veroeffentlichungsstatus">Veröffentlichungsstatus</a></p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel durchführen zu können.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_störungsdetails"><a class="anchor" href="#_störungsdetails"></a>3.2.2. Störungsdetails</h4>
+<div class="paragraph">
+<p>Die Details zu einer Störungsmeldung befinden sich im mittleren Teil der Detailansicht.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/stoerung-detail.png" alt="stoerung detail">
+</div>
+<div class="title">Figure 12. Ansicht der Details zu einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Die Störungsdetails enthalten folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 3. Attribute einer Störungsmeldung (Teil: Störungsdetails)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zuständigkeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freitext</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zuständiger Mitarbeiter, Bereich, etc.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Spannungsebene</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>Nur bei Sparte = Strom:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Hochspannung</p>
+</li>
+<li>
+<p>Mittelspannung</p>
+</li>
+<li>
+<p>Niederspannung</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Druckstufe</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>Nur bei Sparte = Gas:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Hochdruck</p>
+</li>
+<li>
+<p>Mitteldruck</p>
+</li>
+<li>
+<p>Niederdruck</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Störungsbeginn (gemeldet)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum/Uhrzeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Startzeitpunkt der Störung</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Störungsende (wiederversorgt)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum/Uhrzeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Behebungszeitpunkt der Störung</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Voraussichtlicher Grund</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Defekt technische Anlage</p>
+</li>
+<li>
+<p>Leitung beschädigt</p>
+</li>
+<li>
+<p>noch nicht bekannt</p>
+</li>
+<li>
+<p>Überregionale Störung</p>
+</li>
+<li>
+<p>Kabelfehler Mittelspannung (nur bei Strom)</p>
+</li>
+<li>
+<p>Kabelfehler Niederspannung (nur bei Strom)</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibung</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freitext</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibung der Störung</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Interne Bemerkungen</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freitext</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zusätzliche Hinweise der Bearbeiter</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel durchführen zu können.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_störungsort"><a class="anchor" href="#_störungsort"></a>3.2.3. Störungsort</h4>
+<div class="paragraph">
+<p>Der Ort einer Störungsmeldung ist im unteren Teil der Detailansicht zu erfassen.
+Das kann auf drei unterschiedliche Arten erfolgen, wobei jeweils nur eine Art Anwendung finden darf:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Adresse</p>
+</li>
+<li>
+<p>Karte</p>
+</li>
+<li>
+<p>Stationsattribute (nur bei Sparte = Strom und Spannungsebene = Mittelspannung ODER Sparte = Telekommunikation)</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Über die folgende Schaltfläche kann zwischen den Arten der Orterfassung gewechselt werden:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/ortserfassung.png" alt="ortserfassung">
+</div>
+<div class="title">Figure 13. Schaltfläche zur Auswahl der Ortserfassung</div>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/warning.png" alt="Warning">
+</td>
+<td class="content">
+Beim Wechsel der Erfassungsart gehen alle bisherigen Eingaben zum Störungsort ohne Hinweis zurückgesetzt.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect4">
+<h5 id="_adresse"><a class="anchor" href="#_adresse"></a>3.2.3.1. Adresse</h5>
+<div class="paragraph">
+<p>Die Erfassung über die Adresse kommt immer dann zum Einsatz, wenn ein
+entsprechender Anschluss vorhanden ist, der der Störung eindeutig zugeordnet werden kann.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/ort-adresse.png" alt="ort adresse">
+</div>
+<div class="title">Figure 14. Ansicht der Ortserfassung über Adresse</div>
+</div>
+<div class="paragraph">
+<p>Zur Adresse gehören folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 4. Attribute einer Störungsmeldung (Teil: Störungsort über Adresse)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Postleitzahl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zahl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Postleitzahl des Störungsortes</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ort (betroffene Orte)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahllisteneinträge abhängig von der ausgewählten Postleitzahl</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ortsteil</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahllisteneinträge abhängig vom ausgewählten Ort</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Straße (betroffene Straße)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahllisteneinträge abhängig vom ausgewählten Ortsteil</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hausnummer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahllisteneinträge abhängig von der ausgewählten Straße</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Radius in Meter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>Darstellung eines Kreises um den Störungsort mit dem ausgewählten Radius in Meter:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>0</p>
+</li>
+<li>
+<p>50</p>
+</li>
+<li>
+<p>100</p>
+</li>
+<li>
+<p>250</p>
+</li>
+<li>
+<p>500</p>
+</li>
+<li>
+<p>1.000</p>
+</li>
+<li>
+<p>1.500</p>
+</li>
+<li>
+<p>2.000</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel durchführen zu können.</p>
+</div>
+<div class="paragraph">
+<p>Während der Erfassung des Ortes erscheint nach Eingabe des zweiten Buchstabens eine Liste von Orten.
+Es dürfen ausschließlich - in der Liste vorhandene - Orte eingetragen werden.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/tip.png" alt="Tip">
+</td>
+<td class="content">
+Bei der Eingabe des Ortes werden nur gültige Orte und Postleitzahlen vorgeschlagen.
+D.h. bei vorheriger Auswahl der Sparte Strom sind nur Orte und Postleitzahlen für Stromanschlüsse sichtbar.
+Das Gleiche gilt auch für alle anderen Sparten.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_karte"><a class="anchor" href="#_karte"></a>3.2.3.2. Karte</h5>
+<div class="paragraph">
+<p>Die Erfassung über die Karte kommt immer dann zum Einsatz, wenn Störungen keiner
+Adresse zugeordnet werden können, z.B. weil die Störung auf einer Grünfläche zwischen
+zwei Orten aufgetreten ist.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/ort-karte.png" alt="ort karte">
+</div>
+<div class="title">Figure 15. Ansicht der Ortserfassung über Karte</div>
+</div>
+<div class="paragraph">
+<p>Mit einem Mausklick auf die entsprechende Stelle auf der Karte wird eine Markierung
+für den Störungsort gesetzt. Dies kann beliebig oft durchgeführt werden, bis der
+Punkt genau getroffen wurde.</p>
+</div>
+<div class="paragraph">
+<p>Die Darstellung des Störungsortes erfolgt mit dem gleichen Marker, wie in allen anderen
+Kartendarstellung auch.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_stationsattribute"><a class="anchor" href="#_stationsattribute"></a>3.2.3.3. Stationsattribute</h5>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/tip.png" alt="Tip">
+</td>
+<td class="content">
+Die Stationsattribute stehen nur zur Verfügung, wenn Sparte = Strom und
+Spannungsebene = Mittelspannung ODER Sparte = Telekommunikation ausgewählt ist.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Die Erfassung über die Stationsattribute kommt dann zum Einsatz, wenn
+es sich um Mittelspannungsstörungen handelt. Hierbei sind die relevanten
+Stationen zu erfassen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/ort-station.png" alt="ort station">
+</div>
+<div class="title">Figure 16. Ansicht der Ortserfassung über Stationsattribute</div>
+</div>
+<div class="paragraph">
+<p>Während der Erfassung der Station (Straßenname oder Stationsnummer) erscheint
+nach Eingabe der zweiten Zahl bzw. des zweiten Buchstabens eine Liste mit Stationen.
+Es können ausschließlich in der Liste vorhandene Stationen ausgewählt werden.</p>
+</div>
+<div class="paragraph">
+<p>Nach Auswahl einer Station wird diese in der Karte dargestellt. Zusätzlich wird
+das Gebiet mit den zugeordneten Hausanschlüssen in Form eines Polygons umrahmt.
+Bei der Auswahl mehrerer Stationen wird die zugrundeliegenden Bereiche miteinander
+vereint, sofern diese geographisch nebeneinander liegen.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/tip.png" alt="Tip">
+</td>
+<td class="content">
+Das Gebiet wird nur umrandet, wenn der/den ausgewählten Station(en) entsprechende
+Hausanschlüsse zugeordnet sind.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="veroeffentlichung"><a class="anchor" href="#veroeffentlichung"></a>3.2.4. Veröffentlichung</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+<div class="paragraph">
+<p>TODO: Folgenden Hinweis einarbeiten
+Man könnte den Hinweis unterbringen, dass eine Veröffentlichung über einen Kanal
+wie E-Mail nur dann Sinn macht, wenn auch mindestens eine Verteilergruppe ausgewählt
+ist, die einen Kontakt mit einer E Mailadresse beinhaltet, sodass mindestens eine
+E Mailadresse gibt, an die eine Benachrichtigung geschickt werden kann.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="uebersicht-verteilergruppen"><a class="anchor" href="#uebersicht-verteilergruppen"></a>3.3. Übersicht der Verteilergruppen</h3>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+<div class="sect3">
+<h4 id="anlegen-verteilergruppe"><a class="anchor" href="#anlegen-verteilergruppe"></a>3.3.1. Anlegen einer Verteilergruppe</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="löschen-verteilergruppe"><a class="anchor" href="#löschen-verteilergruppe"></a>3.3.2. Löschen einer Verteilergruppe</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+<div class="paragraph">
+<p>TODO: Hinweis von Frau Salbeck einarbeiten
+Es können einzelne Verteiler aus dem Veröffentlichungsprozess herausgenommen werden,
+ohne dass diese eine Nachricht darüber erhalten.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="bearbeitung-verteilergruppen"><a class="anchor" href="#bearbeitung-verteilergruppen"></a>3.4. Ansicht und Bearbeiten einer Verteilergruppe</h3>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_weitere_funktionen"><a class="anchor" href="#_weitere_funktionen"></a>4. Weitere Funktionen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="allg-funktionen-uebersicht-aller-sm"><a class="anchor" href="#allg-funktionen-uebersicht-aller-sm"></a>4.1. Zur: Übersicht der Störungsmeldungen</h3>
+<div class="sect3">
+<h4 id="allg-funktionen-uebersicht-aller-sm-filter"><a class="anchor" href="#allg-funktionen-uebersicht-aller-sm-filter"></a>4.1.1. Vordefinierte Filter (Kennzahlen)</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="allg-funktionen-uebersicht-aller-sm-verdichten"><a class="anchor" href="#allg-funktionen-uebersicht-aller-sm-verdichten"></a>4.1.2. Verdichten von Störungsmeldungen</h4>
+<div class="paragraph">
+<p>Sofern mehrere Störungsmeldungen auf dieselbe Störung zurückzuführen sind,
+können diese über die Verdichten-Funktion zusammengeführt werden.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/tip.png" alt="Tip">
+</td>
+<td class="content">
+Es können nur Störungsmeldungen der gleichen Sparte verdichtet werden.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Dazu ist in der Übersicht der Störungsmeldungen die Schaltfläche "Verdichtung"
+zu betätigen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/verdichten-1.png" alt="verdichten 1">
+</div>
+<div class="title">Figure 17. Übersicht der Störungsmeldungen</div>
+</div>
+<div class="paragraph">
+<p>Anschließend öffnet sich unter der Schaltfläche "Verdichtung" der Bereich
+mit den ausgewählten bzw. verdichteten Störungsmeldungen.
+Des Weiteren werden alle - noch nicht verdichteten - Störungsmeldungen
+in der Listenansicht mit einem "+" angezeigt.</p>
+</div>
+<div id="verdichten-2" class="imageblock">
+<div class="content">
+<img src="../img/verdichten-2.png" alt="verdichten 2">
+</div>
+<div class="title">Figure 18. Auswahl von Störungsmeldungen zum Verdichten</div>
+</div>
+<div class="paragraph">
+<p>Nun sind die entsprechenden Störungsmeldungen über das "+"-Symbol auszuwählen.
+Diese erscheinen dann unmittelbar in der obigen Tabelle mit den zu verdichtenden
+Störungsmeldungen. Bereits Hinzugeführte können über das "-"-Symbol wieder
+entfernt werden:</p>
+</div>
+<div id="verdichten-3" class="imageblock">
+<div class="content">
+<img src="../img/verdichten-3.png" alt="verdichten 3">
+</div>
+<div class="title">Figure 19. Selektierte Störungsmeldungen zum Verdichten</div>
+</div>
+<div class="paragraph">
+<p>Mit einem Klick auf die Schaltfläche "Ausgewählte Meldungen verdichten" wird
+eine neue Störungsmeldung erzeugt (rot umrandet in folgender Abbildung). Die
+blau hinterlegte Zahl zeigt die Anzahl der verdichteten Störungsmeldungen an:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/verdichten-4.png" alt="verdichten 4">
+</div>
+<div class="title">Figure 20. Neue erstellte Störungsmeldung (nach Verdichtung)</div>
+</div>
+<div class="paragraph">
+<p>Bei der Erstellung der neuen Störungsmeldungen werden initial die Grunddaten der
+verdichteten Störungsmeldungen übernommen:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Sparte</p>
+</li>
+<li>
+<p>Spannungsebene bzw. Druckstufe: Wenn bei allen verdichten Meldungen gleich, sonst leer</p>
+</li>
+<li>
+<p>Störungsbeginn (gemeldet): Das frühste Datum der verdichteten Meldungen</p>
+</li>
+<li>
+<p>Störungsende (geplant): Das späteste Datum der verdichteten Meldungen</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Zudem wird der interne Bearbeitungsstatus auf "neu" gesetzt.</p>
+</div>
+<div class="paragraph">
+<p>Alle Anpassungen und Aktualisierungen bzgl. dieser Störung sind fortan nur
+noch an dieser neuen Störungsmeldung vorzunehmen.</p>
+</div>
+<div class="paragraph">
+<p>INFO: Die verdichteten Meldungen werden nach Aktualisierung der übergeordneten
+Störungsmeldung nicht synchronisiert. Die einzige Ausnahme ist, wenn der
+interne Bearbeitungsstatus auf "beendet" wird. Dann werden auch die untergeordneten
+Störungsmeldungen auf "beendet" gesetzt.</p>
+</div>
+<div class="paragraph">
+<p>Nach der Verdichtung und Erzeugung der übergeordneten Störungsmeldung müssen die
+Informationen zur Störung manuell ergänzt werden. Dies erfolgt genauso, wie die
+Bearbeitung aller anderen Störungsmeldungen auch, siehe Abschnitt
+<a href="#stoerung-ansicht-bearbeitung">Ansicht und Bearbeitung einer Störungsmeldung</a>.</p>
+</div>
+<div class="paragraph">
+<p>Um die verdichteten Störungsmeldungen nachträglich anzupassen, nämlich</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Weitere Störungsmeldungen hinzufügen,</p>
+</li>
+<li>
+<p>Ausgewählte Störungsmeldungen entfernen,</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>ist ein Klick auf die blau hinterlegte Zahl notwendig. Anschließend öffnet sich
+der Bereich mit den ausgewählten Störungsmeldungen. Hier können die einzelnen
+Meldungen über die bekannten Symbole bearbeitet werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/verdichten-5.png" alt="verdichten 5">
+</div>
+<div class="title">Figure 21. Verdichtete Störungsmeldungen bearbeiten</div>
+</div>
+<div class="paragraph">
+<p>Nach einem Klick auf "Verdichtung bearbeiten" erscheint wieder die Ansicht
+zum Hinzufügen und Entfernen von Störungsmeldungen, siehe Abbildung <a href="#verdichten-3">Selektierte Störungsmeldungen zum Verdichten</a></p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_zur_ansicht_und_bearbeitung_einer_störungsmeldung"><a class="anchor" href="#_zur_ansicht_und_bearbeitung_einer_störungsmeldung"></a>4.2. Zur: Ansicht und Bearbeitung einer Störungsmeldung</h3>
+<div class="sect3">
+<h4 id="_ansichts_und_bearbeitungsmodus"><a class="anchor" href="#_ansichts_und_bearbeitungsmodus"></a>4.2.1. Ansichts- und Bearbeitungsmodus</h4>
+<div class="paragraph">
+<p>Je nach Benutzerrolle ist eine Störungsmeldung zur Ansicht oder zur Bearbeitung
+geöffnet.</p>
+</div>
+<div class="sect4">
+<h5 id="_ansichtsmodus"><a class="anchor" href="#_ansichtsmodus"></a>4.2.1.1. Ansichtsmodus</h5>
+<div class="paragraph">
+<p>Im Ansichtsmodus können keine Daten verändert werden. Deshalb ist lediglich die Schaltfläche
+Abbrechen sichtbar.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/abbrechen.png" alt="abbrechen">
+</div>
+<div class="title">Figure 22. Schaltfläche Abbrechen</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_bearbeitungsmodus"><a class="anchor" href="#_bearbeitungsmodus"></a>4.2.1.2. Bearbeitungsmodus</h5>
+<div class="paragraph">
+<p>Wird im Bearbeitungsmodus die Schaltfläche "Abbrechen" betätigt, nachdem Änderungen
+vorgenommen wurden, erscheint eine zusätzliche Abfrage:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/meldung-nach-abbrechen.png" alt="meldung nach abbrechen">
+</div>
+<div class="title">Figure 23. Meldung bei geänderten Daten nach Klick auf Abbrechen</div>
+</div>
+<div class="paragraph">
+<p>Im Bearbeitungsmodus steht zusätzlich die Schaltfläche Speichern zur Verfügung.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/speichern.png" alt="speichern">
+</div>
+<div class="title">Figure 24. Schaltfläche Speichern</div>
+</div>
+<div class="paragraph">
+<p>Des Weiteren existieren zusätzlich Schaltflächen, um den internen
+Bearbeitungsstatus zu ändern. Details dazu befinden sich im
+Abschnitt <a href="#statuswechsel">Statuswechsel durchführen</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="statuswechsel"><a class="anchor" href="#statuswechsel"></a>4.2.2. Statuswechsel durchführen</h4>
+<div class="sect4">
+<h5 id="statuswechsel-allgemein"><a class="anchor" href="#statuswechsel-allgemein"></a>4.2.2.1. Allgemeine Statuswechsel des internen Bearbeitungsstatus</h5>
+<div class="paragraph">
+<p>Statuswechsel ist abhängig von der Benutzerrolle und dem aktuellen internen
+Bearbeitungsstatus. Als Beispiel ist im Folgenden die Schaltfläche für den
+Statuswechsel nach "angelegt" dargestellt. Die weiteren internen Bearbeitungsstatus
+sind im Abschnitt <a href="#uebersicht-bearbeitungsstatus-intern">Bearbeitungsstatus (intern)</a> ersichtlich.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/anlegen.png" alt="anlegen">
+</div>
+<div class="title">Figure 25. Schaltfläche zum Wechsel des internen Bearbeitungsstatus auf "anlegen"</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="statuswechsel-stornieren"><a class="anchor" href="#statuswechsel-stornieren"></a>4.2.2.2. Stornieren von Störungsmeldungen</h5>
+<div class="paragraph">
+<p>Das Stornieren eines Störungsmeldung erfolgt ebenfalls in der Detailansicht
+über die Schaltfläche "Stornieren".</p>
+</div>
+<div class="paragraph">
+<p>TODO: Bild einfügen</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/stornieren.png" alt="stornieren">
+</div>
+<div class="title">Figure 26. Schaltfläche zum Stornieren einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Durch das Stornieren erhält die Störungsmeldung den internen Bearbeitungstatus
+"storniert". Gleichzeitig wird der Veröffentlichungsstatus auf "zurückgezogen"
+gesetzt.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="statuswechsel-ext-Status"><a class="anchor" href="#statuswechsel-ext-Status"></a>4.2.2.3. Statuswechsel des externen Bearbeitungsstatus</h5>
+<div class="paragraph">
+<p>Die Statuswechsel des externen Bearbeitungsstatus erfolgen automatisch gemäß
+den Vorgaben aus Abschnitt <a href="#uebersicht-bearbeitungsstatus-extern">Bearbeitungsstatus (extern)</a>.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="statuswechsel-veroffentlichung"><a class="anchor" href="#statuswechsel-veroffentlichung"></a>4.2.2.4. Statuswechsel des Veröffentlichungsstatus</h5>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="versionierung"><a class="anchor" href="#versionierung"></a>4.2.3. Versionierung</h4>
+<div class="paragraph">
+<p>Jede gespeicherte Änderung an einer Störungsmeldung wird in einer
+neuen Version, unter Angabe des Bearbeiters und Datum/Uhrzeit, abgelegt.
+Auswählbar sind die einzelnen Versionen in der Detailansicht einer Störungsmeldung:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/versionierung-1.png" alt="versionierung 1">
+</div>
+<div class="title">Figure 27. Anzeige der Version einer Störungsmeldung</div>
+</div>
+<div class="paragraph">
+<p>Standardmäßig ist die aktuellste Version ausgewählt. Je nach
+Bearbeitungsstatus und Benutzerrolle kann die Störungsmeldung
+bearbeitbar sein.</p>
+</div>
+<div class="paragraph">
+<p>Zur Ansicht einer älteren Version muss lediglich die Versionsnummer
+in der Auswahlliste angeklickt werden. Anschließend werden die
+entsprechenden Einträge schreibgeschützt angezeigt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/versionierung-2.png" alt="versionierung 2">
+</div>
+<div class="title">Figure 28. Anzeige einer älteren Version einer Störungsmeldung (schreibgeschützt)</div>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_schnittstellen"><a class="anchor" href="#_schnittstellen"></a>5. Schnittstellen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_import_von_störungsmeldungen"><a class="anchor" href="#_import_von_störungsmeldungen"></a>5.1. Import von Störungsmeldungen</h3>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_export_von_störungsmeldungen"><a class="anchor" href="#_export_von_störungsmeldungen"></a>5.2. Export von Störungsmeldungen</h3>
+<div class="sect3">
+<h4 id="Mail"><a class="anchor" href="#Mail"></a>5.2.1. Mail</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="stoerungsauskunft"><a class="anchor" href="#stoerungsauskunft"></a>5.2.2. Störungsauskunft.de</h4>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_benachrichtigungen_und_erinnerungen"><a class="anchor" href="#_benachrichtigungen_und_erinnerungen"></a>6. Benachrichtigungen und Erinnerungen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="email-benachrichtigung-statuswechsel"><a class="anchor" href="#email-benachrichtigung-statuswechsel"></a>6.1. eMail-Benachrichtigung bei Statuswechsel</h3>
+<div class="paragraph">
+<p>TODO</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="meldungen-hinweise"><a class="anchor" href="#meldungen-hinweise"></a>6.2. Hinweise und Meldungen nach Benutzeraktionen</h3>
+<div class="paragraph">
+<p>Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Handlungsanweisungen zu geben,</p>
+</li>
+<li>
+<p>über Fehler des Systems zu informieren.</p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="_erfolg_einer_aktion"><a class="anchor" href="#_erfolg_einer_aktion"></a>6.2.1. Erfolg einer Aktion</h4>
+<div class="paragraph">
+<p>Ist eine Benutzeraktion erfolgreich, so erscheint keine Meldung.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_handlungsanweisung"><a class="anchor" href="#_handlungsanweisung"></a>6.2.2. Handlungsanweisung</h4>
+<div class="paragraph">
+<p>In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Fehlenden Informationen (Pflichtfelder füllen)</p>
+</li>
+</ul>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/meldung-hinweis.png" alt="meldung hinweis">
+</div>
+<div class="title">Figure 29. Hinweis Pflichtfelder</div>
+</div>
+<div class="paragraph">
+<p>Diese Meldungen bleiben für einige Sekunden sichtbar und verschwinden dann wieder
+automatisch.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_fehlermeldungen"><a class="anchor" href="#_fehlermeldungen"></a>6.2.3. Fehlermeldungen</h4>
+<div class="paragraph">
+<p>Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Speichern fehlgeschlagen</p>
+</li>
+<li>
+<p>Web Services nicht verfügbar</p>
+</li>
+</ul>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/meldung-fehler.png" alt="meldung fehler">
+</div>
+<div class="title">Figure 30. Fehlermeldung</div>
+</div>
+<div class="paragraph">
+<p>Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer durch einfaches
+Anklicken geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_an_und_abmeldung"><a class="anchor" href="#_an_und_abmeldung"></a>7. An- und Abmeldung</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_modul_störungsinformationstool_aus_portal_starten"><a class="anchor" href="#_modul_störungsinformationstool_aus_portal_starten"></a>7.1. Modul "Störungsinformationstool" aus Portal starten</h3>
+<div class="paragraph">
+<p>Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Störungsinformationstool" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Störungsinformationstool"
+in einem neuen Fenster bzw. in einem neuen Tab des selben Browserfensters (je nach
+Browsereinstellung).</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/oeffnen-modul.png" alt="oeffnen modul">
+</div>
+<div class="title">Figure 31. Kachel zum Starten des Moduls "Störungsinformationstool"</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_abmelden"><a class="anchor" href="#_abmelden"></a>7.2. Abmelden</h3>
+<div class="paragraph">
+<p>Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../img/abmelden.png" alt="abmelden">
+</div>
+<div class="title">Figure 32. Abmelden vom openKONSEQUENZ-System</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../img/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul
+Störungsinformationstool, sondern die Abmeldung vom Portal. D.h. alle parallel
+geöffneten openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Geplante
+Netzmaßnahme) werden automatisch mit abgemeldet.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Störungsinformationstool zu schließen.</p>
+</div>
+</div>
+</div>
+</div>
+        </div>
+      </div>
+    </body>
+  </html>