diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index db92e7a053f0f228021f2870f632db4250556101..8f54bec82cc5f6db4c85007bffb7dc2818a40293 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,13 +20,7 @@ tslint:
   allow_failure: false
   dependencies: []
   script:
-    - echo "{}" > package.json
-    - npm install tslint-angular
-    - npm install tslint-eslint-rules
-    - npm install @angular/compiler
-    - npm install @angular/core
-    - npm install typescript
-    - npm install rxjs
+    - npm install
     - node_modules/tslint/bin/tslint -p ./tsconfig.json -c ./tslint.json --project
 
 unit_tests:
diff --git a/THEME-README.md b/THEME-README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2e2a7831d4f1dfccbe1cc18449365114515687e8
--- /dev/null
+++ b/THEME-README.md
@@ -0,0 +1,19 @@
+# How to add a new Theme
+
+## Preparation
+
+Create a new directory with the name of the new theme in src/theme.
+
+## Create new theme
+
+1. Create a new scss file with the same structure as `_dark-theme.scss` and style it using material palette.
+
+2. Create a new scss file in your working theme directory named {YourThemeName}.const.ts and copy the structure of `darkTheme.const.ts`.
+
+## Add new theme to theme manager
+
+Import the file in `styles.scss` and add the new theme to theme menu in `header.component.html`.
+
+## Configure your theme 
+
+Start editing the variables and see the magic happen. We recommend to use [material colors](https://material.io/tools/color).
diff --git a/authors.md b/authors.md
index fab184e4601ae0a23c27e78111b54c72befc0e63..6e1cdd453da5f26d15bbd606ebd4f7770fe163e7 100644
--- a/authors.md
+++ b/authors.md
@@ -8,3 +8,10 @@
 * thomas.lenz@mni.thm.de
 * lorenz.detterbeck@mni.thm.de
 * lukas.mauss@mni.thm.de
+* louis.peter@mni.thm.de
+* mariana.baho@mni.thm.de
+* berna.tuelek@mni.thm.de
+* thisari.muthuwahandi@mni.thm.de
+* sebastian.wittek@mni.thm.de
+* anris.ceta@mni.thm.de
+* thomas.gross@mni.thm.de
diff --git a/docs/comments_diagrams.mdj b/docs/comments_diagrams.mdj
new file mode 100644
index 0000000000000000000000000000000000000000..b7295da036cbe8881efaa1b25647af627668003b
--- /dev/null
+++ b/docs/comments_diagrams.mdj
@@ -0,0 +1,14458 @@
+{
+	"_type": "Project",
+	"_id": "AAAAAAFF+h6SjaM2Hec=",
+	"name": "Untitled",
+	"ownedElements": [
+		{
+			"_type": "UMLModel",
+			"_id": "AAAAAAFpe7xMGqH7VRk=",
+			"_parent": {
+				"$ref": "AAAAAAFF+h6SjaM2Hec="
+			},
+			"name": "Model1",
+			"ownedElements": [
+				{
+					"_type": "UMLUseCaseDiagram",
+					"_id": "AAAAAAFpe7xMGqH8A8A=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "UseCaseDiagram1",
+					"ownedViews": [
+						{
+							"_type": "UMLActorView",
+							"_id": "AAAAAAFpe7yoQKIFgzc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe7yoQKIG1zM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7yoQKIFgzc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7yoQKIDgWo="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7yoQaIHDrA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7yoQKIG1zM="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -752,
+											"top": -448,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7yoQaIIREM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7yoQKIG1zM="
+											},
+											"font": "Arial;13;1",
+											"left": 37,
+											"top": 206,
+											"width": 103,
+											"height": 13,
+											"text": "Dozent"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7yoQaIJyDE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7yoQKIG1zM="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -752,
+											"top": -448,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7yoQqIKbPg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7yoQKIG1zM="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -752,
+											"top": -448,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 32,
+									"top": 199,
+									"width": 113,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe7yoQaIHDrA="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe7yoQaIIREM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe7yoQaIJyDE="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe7yoQqIKbPg="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe7yoQqILJ+8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7yoQKIFgzc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7yoQKIDgWo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -376,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe7yoQqIMM1w=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7yoQKIFgzc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7yoQKIDgWo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -376,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe7yoQqINUN4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7yoQKIFgzc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7yoQKIDgWo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -376,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe7yoQqIO/BU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7yoQKIFgzc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7yoQKIDgWo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -376,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 32,
+							"top": 72,
+							"width": 113,
+							"height": 153,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe7yoQKIG1zM="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe7yoQqILJ+8="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe7yoQqIMM1w="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe7yoQqINUN4="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe7yoQqIO/BU="
+							}
+						},
+						{
+							"_type": "UMLActorView",
+							"_id": "AAAAAAFpe73eVqIx8wc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe73eVqIvxOo="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe73eVqIyr+c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe73eVqIx8wc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe73eVqIvxOo="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe73eVqIzF/c=",
+											"_parent": {
+												"$ref": "AAAAAAFpe73eVqIyr+c="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -384,
+											"top": 640,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe73eVqI0T7c=",
+											"_parent": {
+												"$ref": "AAAAAAFpe73eVqIyr+c="
+											},
+											"font": "Arial;13;1",
+											"left": 37,
+											"top": 910,
+											"width": 103,
+											"height": 13,
+											"text": "Student"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe73eV6I17eI=",
+											"_parent": {
+												"$ref": "AAAAAAFpe73eVqIyr+c="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -384,
+											"top": 640,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe73eV6I2i6k=",
+											"_parent": {
+												"$ref": "AAAAAAFpe73eVqIyr+c="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -384,
+											"top": 640,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 32,
+									"top": 903,
+									"width": 113,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe73eVqIzF/c="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe73eVqI0T7c="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe73eV6I17eI="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe73eV6I2i6k="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe73eV6I3iJU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe73eVqIx8wc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe73eVqIvxOo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -192,
+									"top": 320,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe73eV6I4PO4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe73eVqIx8wc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe73eVqIvxOo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -192,
+									"top": 320,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe73eV6I5wnc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe73eVqIx8wc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe73eVqIvxOo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -192,
+									"top": 320,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe73eV6I6txY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe73eVqIx8wc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe73eVqIvxOo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -192,
+									"top": 320,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 32,
+							"top": 768,
+							"width": 113,
+							"height": 161,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe73eVqIyr+c="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe73eV6I3iJU="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe73eV6I4PO4="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe73eV6I5wnc="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe73eV6I6txY="
+							}
+						},
+						{
+							"_type": "UMLActorView",
+							"_id": "AAAAAAFpe74tNKJei7k=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe74tNKJfUWY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe74tNKJei7k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe74tNKJcZCg="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe74tNKJgwrM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe74tNKJfUWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1280,
+											"top": 48,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe74tNKJhXmc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe74tNKJfUWY="
+											},
+											"font": "Arial;13;1",
+											"left": 37,
+											"top": 574,
+											"width": 103,
+											"height": 13,
+											"text": "Moderator"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe74tNKJi4qg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe74tNKJfUWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1280,
+											"top": 48,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe74tNaJjZ3w=",
+											"_parent": {
+												"$ref": "AAAAAAFpe74tNKJfUWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1280,
+											"top": 48,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 32,
+									"top": 567,
+									"width": 113,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe74tNKJgwrM="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe74tNKJhXmc="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe74tNKJi4qg="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe74tNaJjZ3w="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe74tNaJkfb8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe74tNKJei7k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe74tNKJcZCg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -640,
+									"top": 24,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe74tNaJlvXo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe74tNKJei7k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe74tNKJcZCg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -640,
+									"top": 24,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe74tNaJmBsE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe74tNKJei7k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe74tNKJcZCg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -640,
+									"top": 24,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe74tNaJn1WM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe74tNKJei7k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe74tNKJcZCg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -640,
+									"top": 24,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 32,
+							"top": 448,
+							"width": 113,
+							"height": 145,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe74tNKJfUWY="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe74tNaJkfb8="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe74tNaJlvXo="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe74tNaJmBsE="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe74tNaJn1WM="
+							}
+						},
+						{
+							"_type": "UMLUseCaseSubjectView",
+							"_id": "AAAAAAFpe7+De6KTf5g=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe7+De6KR5QE="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe7+De6KUjEg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe7+De6KTf5g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe7+De6KR5QE="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7+De6KVB1o=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7+De6KUjEg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7+De6KWXGI=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7+De6KUjEg="
+											},
+											"font": "Arial;13;1",
+											"left": 205,
+											"top": 23,
+											"width": 870,
+											"height": 13,
+											"text": "Arsnova-lite comment service"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7+De6KX7xc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7+De6KUjEg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe7+De6KY1Tw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe7+De6KUjEg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 200,
+									"top": 16,
+									"width": 880,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe7+De6KVB1o="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe7+De6KWXGI="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe7+De6KX7xc="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe7+De6KY1Tw="
+									}
+								}
+							],
+							"font": "Arial;13;0",
+							"left": 200,
+							"top": 16,
+							"width": 880,
+							"height": 945,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe7+De6KUjEg="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8DNKqKvWtE=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8DNKqKt5Jw="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8DNKqKwmGU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8DNKqKxqRI=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8DNKqKwmGU="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 16,
+											"top": -96,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8DNKqKyUus=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8DNKqKwmGU="
+											},
+											"font": "Arial;13;1",
+											"left": 246,
+											"top": 59.5,
+											"width": 109,
+											"height": 13,
+											"text": "exportComments"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8DNKqKz4RA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8DNKqKwmGU="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 16,
+											"top": -96,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8DNKqK0q5g=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8DNKqKwmGU="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 16,
+											"top": -96,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 241,
+									"top": 52.5,
+									"width": 119,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8DNKqKxqRI="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8DNKqKyUus="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8DNKqKz4RA="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8DNKqK0q5g="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8DNKqK1tuY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 8,
+									"top": -48,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8DNKqK2N3Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 8,
+									"top": -48,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8DNKqK37XE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 8,
+									"top": -48,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8DNKqK4A6U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 8,
+									"top": -48,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8DNK6K5HuQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8DNKqKvWtE="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8DNKqKt5Jw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 8,
+									"top": -48,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 216,
+							"top": 48,
+							"width": 169,
+							"height": 35,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8DNKqKwmGU="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8DNKqK1tuY="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8DNKqK2N3Y="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8DNKqK37XE="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8DNKqK4A6U="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8DNK6K5HuQ="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8GOZaLhADo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8GOZaLfPXg="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLihmc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8GOZaLjRdE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8GOZaLihmc="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 592,
+											"top": -144,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8GOZaLklZM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8GOZaLihmc="
+											},
+											"font": "Arial;13;1",
+											"left": 843.5,
+											"top": 62,
+											"width": 98,
+											"height": 13,
+											"text": "Favorite"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8GOZaLlzbc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8GOZaLihmc="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 592,
+											"top": -144,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8GOZaLmwZE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8GOZaLihmc="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 592,
+											"top": -144,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 838.5,
+									"top": 55,
+									"width": 108,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8GOZaLjRdE="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8GOZaLklZM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8GOZaLlzbc="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8GOZaLmwZE="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLnWtk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": -72,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLoj50=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": -72,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLpyNw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": -72,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLqItM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": -72,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8GOZaLrGDY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8GOZaLhADo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8GOZaLfPXg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": -72,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 816,
+							"top": 48,
+							"width": 153,
+							"height": 40,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLihmc="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLnWtk="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLoj50="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLpyNw="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLqItM="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8GOZaLrGDY="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8HchqMQw4g=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8HchqMONmE="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8HchqMRIW0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8HchqMS8CM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8HchqMRIW0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 480,
+											"top": -128,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8Hch6MTUug=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8HchqMRIW0="
+											},
+											"font": "Arial;13;1",
+											"left": 886.5,
+											"top": 142,
+											"width": 110,
+											"height": 13,
+											"text": "rightAnswer"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8Hch6MUd+c=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8HchqMRIW0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 480,
+											"top": -128,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8Hch6MVg/0=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8HchqMRIW0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 480,
+											"top": -128,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 881.5,
+									"top": 135,
+									"width": 120,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8HchqMS8CM="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8Hch6MTUug="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8Hch6MUd+c="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8Hch6MVg/0="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8Hch6MW8lw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 240,
+									"top": -64,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8Hch6MXZPY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 240,
+									"top": -64,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8Hch6MYcOU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 240,
+									"top": -64,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8Hch6MZ758=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 240,
+									"top": -64,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8Hch6MaivY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8HchqMQw4g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8HchqMONmE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 240,
+									"top": -64,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 856,
+							"top": 120,
+							"width": 171,
+							"height": 56,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8HchqMRIW0="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8Hch6MW8lw="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8Hch6MXZPY="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8Hch6MYcOU="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8Hch6MZ758="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8Hch6MaivY="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8JRqKNAoiA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8JRqKM+ipY="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8JRqKNBOFI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8JRqKNCimo=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8JRqKNBOFI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -256,
+											"top": -560,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8JRqaNDowM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8JRqKNBOFI="
+											},
+											"font": "Arial;13;1",
+											"left": 413,
+											"top": 70,
+											"width": 103,
+											"height": 13,
+											"text": "filterComments"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8JRqaNEuEg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8JRqKNBOFI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -256,
+											"top": -560,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8JRqaNFJHo=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8JRqKNBOFI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -256,
+											"top": -560,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 408,
+									"top": 63,
+									"width": 113,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8JRqKNCimo="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8JRqaNDowM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8JRqaNEuEg="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8JRqaNFJHo="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8JRqaNGn4g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -128,
+									"top": -280,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8JRqaNHW2E=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -128,
+									"top": -280,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8JRqaNI4MA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -128,
+									"top": -280,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8JRqaNJsks=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -128,
+									"top": -280,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8JRqaNKdhA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8JRqKNAoiA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8JRqKM+ipY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -128,
+									"top": -280,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 384,
+							"top": 48,
+							"width": 161,
+							"height": 56,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8JRqKNBOFI="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8JRqaNGn4g="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8JRqaNHW2E="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8JRqaNI4MA="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8JRqaNJsks="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8JRqaNKdhA="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8KLnKNwoas=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8KLnKNuXzA="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8KLnKNx428=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8KLnKNyZHc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8KLnKNx428="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 96,
+											"top": -240,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8KLnKNzbuM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8KLnKNx428="
+											},
+											"font": "Arial;13;1",
+											"left": 592,
+											"top": 206,
+											"width": 119,
+											"height": 13,
+											"text": "manageModerators"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8KLnKN0fQM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8KLnKNx428="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 96,
+											"top": -240,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8KLnKN18lU=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8KLnKNx428="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 96,
+											"top": -240,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 587,
+									"top": 199,
+									"width": 129.919921875,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8KLnKNyZHc="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8KLnKNzbuM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8KLnKN0fQM="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8KLnKN18lU="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8KLnKN20zA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 48,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8KLnKN3Z5E=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 48,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8KLnKN4YAk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 48,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8KLnKN5BJA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 48,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8KLnKN6aMg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8KLnKNwoas="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8KLnKNuXzA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 48,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 560,
+							"top": 184,
+							"width": 183,
+							"height": 56,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8KLnKNx428="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8KLnKN20zA="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8KLnKN3Z5E="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8KLnKN4YAk="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8KLnKN5BJA="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8KLnKN6aMg="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8LrX6OfnoY=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8LrX6Od4VU="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8LrX6OgiV4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8LrX6OhiGg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8LrX6OgiV4="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -32,
+											"top": -688,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8LrX6OiNGI=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8LrX6OgiV4="
+											},
+											"font": "Arial;13;1",
+											"left": 653.5,
+											"top": 82,
+											"width": 106,
+											"height": 13,
+											"text": "presentComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8LrX6Ojlmw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8LrX6OgiV4="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -32,
+											"top": -688,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8LrX6Ok7Vs=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8LrX6OgiV4="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -32,
+											"top": -688,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 648.5,
+									"top": 75,
+									"width": 116.9072265625,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8LrX6OhiGg="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8LrX6OiNGI="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8LrX6Ojlmw="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8LrX6Ok7Vs="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8LrX6OleMk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -16,
+									"top": -344,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8LrX6OmCFo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -16,
+									"top": -344,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8LrX6Onx1c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -16,
+									"top": -344,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8LrX6OoDsM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -16,
+									"top": -344,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8LrX6OpgCE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8LrX6OfnoY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8LrX6Od4VU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -16,
+									"top": -344,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 624,
+							"top": 64,
+							"width": 165,
+							"height": 48,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8LrX6OgiV4="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8LrX6OleMk="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8LrX6OmCFo="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8LrX6Onx1c="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8LrX6OoDsM="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8LrX6OpgCE="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8McIqPOqFA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8McIqPMS04="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8McIqPPvgI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8McIqPQlNE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8McIqPPvgI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -480,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8McIqPR/1E=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8McIqPPvgI="
+											},
+											"font": "Arial;13;1",
+											"left": 855.5,
+											"top": 227.5,
+											"width": 79,
+											"height": 13,
+											"text": "read"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8McIqPSaII=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8McIqPPvgI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -480,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8McIqPTjHU=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8McIqPPvgI="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -480,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 850.5,
+									"top": 220.5,
+									"width": 89,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8McIqPQlNE="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8McIqPR/1E="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8McIqPSaII="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8McIqPTjHU="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8McIqPUVf4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -240,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8McIqPVfJg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -240,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8McIqPW4jk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -240,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8McIqPXDXo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -240,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8McIqPY3iI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8McIqPOqFA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8McIqPMS04="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -240,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 832,
+							"top": 216,
+							"width": 126,
+							"height": 35,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8McIqPPvgI="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8McIqPUVf4="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8McIqPVfJg="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8McIqPW4jk="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8McIqPXDXo="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8McIqPY3iI="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8O4QaP8JVM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8O4QaP6YNs="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8O4QaP9SqA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8O4QaP+Mxg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8O4QaP9SqA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 656,
+											"top": 256,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8O4QaP/ss8=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8O4QaP9SqA="
+											},
+											"font": "Arial;13;1",
+											"left": 809.5,
+											"top": 746.5,
+											"width": 126,
+											"height": 13,
+											"text": "createComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8O4QaQAyL4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8O4QaP9SqA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 656,
+											"top": 256,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8O4QaQBuTc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8O4QaP9SqA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 656,
+											"top": 256,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 804.5,
+									"top": 739.5,
+									"width": 136,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8O4QaP+Mxg="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8O4QaP/ss8="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8O4QaQAyL4="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8O4QaQBuTc="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8O4QaQCh5c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8O4QaQDMrw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8O4QqQEN3A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8O4QqQFIKE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8O4QqQGKVU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8O4QaP8JVM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8O4QaP6YNs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 776,
+							"top": 704,
+							"width": 193,
+							"height": 97,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8O4QaP9SqA="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8O4QaQCh5c="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8O4QaQDMrw="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8O4QqQEN3A="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8O4QqQFIKE="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8O4QqQGKVU="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8PfmKQrOsM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8PfmKQpMNk="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQsyNY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8PfmKQtgYg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8PfmKQsyNY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 784,
+											"top": -400,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8PfmKQuqZw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8PfmKQsyNY="
+											},
+											"font": "Arial;13;1",
+											"left": 785.5,
+											"top": 458.5,
+											"width": 126,
+											"height": 13,
+											"text": "deleteComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8PfmKQvqog=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8PfmKQsyNY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 784,
+											"top": -400,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8PfmKQwgxA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8PfmKQsyNY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 784,
+											"top": -400,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 780.5,
+									"top": 451.5,
+									"width": 136,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8PfmKQtgYg="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8PfmKQuqZw="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8PfmKQvqog="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8PfmKQwgxA="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQx0kk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 392,
+									"top": -200,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQykbg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 392,
+									"top": -200,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQziKE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 392,
+									"top": -200,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQ02jc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 392,
+									"top": -200,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8PfmKQ1BIU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8PfmKQrOsM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8PfmKQpMNk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 392,
+									"top": -200,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 752,
+							"top": 424,
+							"width": 193,
+							"height": 81,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQsyNY="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQx0kk="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQykbg="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQziKE="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQ02jc="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8PfmKQ1BIU="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8P6N6RZDco=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8P6N6RXqcw="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8P6N6RanWY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8P6N6Rbkjc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8P6N6RanWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -672,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8P6N6RcqDQ=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8P6N6RanWY="
+											},
+											"font": "Arial;13;1",
+											"left": 767,
+											"top": 330,
+											"width": 153,
+											"height": 13,
+											"text": "deleteMultipleComments"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8P6N6Rd8QE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8P6N6RanWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -672,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8P6N6RehiE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8P6N6RanWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 256,
+											"top": -672,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 762,
+									"top": 323,
+									"width": 163.8544921875,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8P6N6Rbkjc="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8P6N6RcqDQ="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8P6N6Rd8QE="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8P6N6RehiE="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8P6N6RfRdY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -336,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8P6OKRgQfA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -336,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8P6OKRhlHk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -336,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8P6OKRil1o=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -336,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8P6OKRj1GA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8P6N6RZDco="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8P6N6RXqcw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 128,
+									"top": -336,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 728,
+							"top": 296,
+							"width": 231,
+							"height": 80,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8P6N6RanWY="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8P6N6RfRdY="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8P6OKRgQfA="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8P6OKRhlHk="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8P6OKRil1o="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8P6OKRj1GA="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8RpaaSI3HU=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8RpZ6SGnoo="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8RpaaSJB3Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8RpaaSK8Kc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8RpaaSJB3Q="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -112,
+											"top": 192,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8RpaaSLXnE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8RpaaSJB3Q="
+											},
+											"font": "Arial;13;1",
+											"left": 249,
+											"top": 459.5,
+											"width": 86,
+											"height": 13,
+											"text": "hideComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8RpaaSM9nA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8RpaaSJB3Q="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -112,
+											"top": 192,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8RpaaSNOAw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8RpaaSJB3Q="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -112,
+											"top": 192,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 244,
+									"top": 452.5,
+									"width": 96.6708984375,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8RpaaSK8Kc="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8RpaaSLXnE="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8RpaaSM9nA="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8RpaaSNOAw="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8RpaaSOWaE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -56,
+									"top": 96,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8RpaaSPC6U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -56,
+									"top": 96,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8RpaqSQSk8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -56,
+									"top": 96,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8RpaqSRk0M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -56,
+									"top": 96,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8RpaqSS51k=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8RpaaSI3HU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8RpZ6SGnoo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -56,
+									"top": 96,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 224,
+							"top": 448,
+							"width": 136,
+							"height": 35,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8RpaaSJB3Q="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8RpaaSOWaE="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8RpaaSPC6U="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8RpaqSQSk8="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8RpaqSRk0M="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8RpaqSS51k="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8TwwqVdQKs=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8TwwqVZYHk="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVeqM0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVZYHk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 204,
+									"top": 111,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVfkO0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVZYHk="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 210,
+									"top": 125,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVgidI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVZYHk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 193,
+									"top": 84,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVhBKw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVa/uM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 235,
+									"top": 100,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqViGNY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVa/uM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 238,
+									"top": 113,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVj4Eo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVa/uM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 229,
+									"top": 73,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVkN9U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVbNNA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 124,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVlpIo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVbNNA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 181,
+									"top": 135,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8TwwqVm15s=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVbNNA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 160,
+									"top": 100,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8TwwqVnqig=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVa/uM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8TwwqVoqow=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8TwwqVdQKs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8TwwqVbNNA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8DNKqKvWtE="
+							},
+							"lineStyle": 1,
+							"points": "254:83;145:126",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8TwwqVeqM0="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8TwwqVfkO0="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8TwwqVgidI="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8TwwqVhBKw="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8TwwqViGNY="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8TwwqVj4Eo="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8TwwqVkN9U="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8TwwqVlpIo="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8TwwqVm15s="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8TwwqVnqig="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8TwwqVoqow="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8VAuqWnn9g=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8VAuaWlECU="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8VAuqWoVf8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8VAuqWp4l4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8VAuqWoVf8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 112,
+											"top": -160,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8VAuqWqEXk=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8VAuqWoVf8="
+											},
+											"font": "Arial;13;1",
+											"left": 642,
+											"top": 138,
+											"width": 90,
+											"height": 13,
+											"text": "markComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8VAuqWrelo=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8VAuqWoVf8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 112,
+											"top": -160,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8VAuqWsXnQ=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8VAuqWoVf8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 112,
+											"top": -160,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 637,
+									"top": 131,
+									"width": 101.025390625,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8VAuqWp4l4="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8VAuqWqEXk="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8VAuqWrelo="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8VAuqWsXnQ="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8VAuqWtgp8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 56,
+									"top": -80,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8VAuqWux3w=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 56,
+									"top": -80,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8VAuqWvFF8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 56,
+									"top": -80,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8VAu6WwYKs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 56,
+									"top": -80,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8VAu6WxSjM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8VAuqWnn9g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8VAuaWlECU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 56,
+									"top": -80,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 616,
+							"top": 120,
+							"width": 142,
+							"height": 48,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8VAuqWoVf8="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8VAuqWtgp8="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8VAuqWux3w="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8VAuqWvFF8="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8VAu6WwYKs="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8VAu6WxSjM="
+							}
+						},
+						{
+							"_type": "UMLExtendView",
+							"_id": "AAAAAAFpe8YGL6YzrdU=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8YGLqYxXt0="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8YGL6Y0x+Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8YGLqYxXt0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 792,
+									"top": 198,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8YGL6Y1QpY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8YGLqYxXt0="
+									},
+									"font": "Arial;13;0",
+									"left": 760,
+									"top": 212,
+									"width": 53.49169921875,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"edgePosition": 1,
+									"text": "«extend»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8YGL6Y2Jvw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8YGLqYxXt0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 803,
+									"top": 171,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8YGL6YzrdU="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8VAuqWnn9g="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8McIqPOqFA="
+							},
+							"lineStyle": 1,
+							"points": "852:215;744:168",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8YGL6Y0x+Y="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8YGL6Y1QpY="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8YGL6Y2Jvw="
+							}
+						},
+						{
+							"_type": "UMLExtendView",
+							"_id": "AAAAAAFpe8Yi+aZT4Ww=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8Yi+aZRJmM="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Yi+aZUsGE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Yi+aZRJmM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 805,
+									"top": 153,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Yi+aZVp5U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Yi+aZRJmM="
+									},
+									"font": "Arial;13;0",
+									"left": 779,
+									"top": 168,
+									"width": 53.49169921875,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"edgePosition": 1,
+									"text": "«extend»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Yi+aZWAEQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Yi+aZRJmM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 806,
+									"top": 124,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8VAuqWnn9g="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8HchqMQw4g="
+							},
+							"lineStyle": 1,
+							"points": "855:146;758:144",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8Yi+aZUsGE="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8Yi+aZVp5U="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8Yi+aZWAEQ="
+							}
+						},
+						{
+							"_type": "UMLExtendView",
+							"_id": "AAAAAAFpe8Y55qZz89s=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8Y55qZx+44="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Y55qZ0kVg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Y55qZx+44="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 798,
+									"top": 111,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Y55qZ1wrc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Y55qZx+44="
+									},
+									"font": "Arial;13;0",
+									"left": 777,
+									"top": 125,
+									"width": 53.49169921875,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"edgePosition": 1,
+									"text": "«extend»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8Y55qZ2r6s=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8Y55qZx+44="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 787,
+									"top": 82,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8Y55qZz89s="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8VAuqWnn9g="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8GOZaLhADo="
+							},
+							"lineStyle": 1,
+							"points": "835:88;751:119",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8Y55qZ0kVg="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8Y55qZ1wrc="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8Y55qZ2r6s="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8ZOYqaVzh8=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8ZOYqaRqtA="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOYqaWzt0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaRqtA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 380,
+									"top": 154,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOYqaXPi4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaRqtA="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 380,
+									"top": 169,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOYqaYspc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaRqtA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 379,
+									"top": 125,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOYqaZXvk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaSkaU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 589,
+									"top": 153,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOYqaafZQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaSkaU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 586,
+									"top": 166,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOY6abI9k=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaSkaU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 593,
+									"top": 125,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOY6acc/4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaTdP4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 171,
+									"top": 156,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOY6admbQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaTdP4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 173,
+									"top": 170,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ZOY6ae7l4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaTdP4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 166,
+									"top": 129,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ZOY6afrFw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaSkaU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ZOY6agd1c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ZOYqaVzh8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ZOYqaTdP4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8VAuqWnn9g="
+							},
+							"lineStyle": 1,
+							"points": "615:144;145:148",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8ZOYqaWzt0="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8ZOYqaXPi4="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8ZOYqaYspc="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ZOYqaZXvk="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8ZOYqaafZQ="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ZOY6abI9k="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ZOY6acc/4="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8ZOY6admbQ="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ZOY6ae7l4="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ZOY6afrFw="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ZOY6agd1c="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8bJNKggwGA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8bJMqgcG5E="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgh/3I=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgcG5E="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 266,
+									"top": 122,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgi5o4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgcG5E="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 269,
+									"top": 137,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgj35A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgcG5E="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 261,
+									"top": 93,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgkdGY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgdurY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 360,
+									"top": 104,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKglhrg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgdurY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 360,
+									"top": 118,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgmCN8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgdurY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 359,
+									"top": 76,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgnn3A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqge8ag="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 173,
+									"top": 140,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgoBDw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqge8ag="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 178,
+									"top": 153,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8bJNKgptAE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqge8ag="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 163,
+									"top": 114,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8bJNKgq7Ac=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqgdurY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8bJNKgrdeM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8bJNKggwGA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8bJMqge8ag="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8JRqKNAoiA="
+							},
+							"lineStyle": 1,
+							"points": "383:91;145:137",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8bJNKgh/3I="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8bJNKgi5o4="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8bJNKgj35A="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8bJNKgkdGY="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8bJNKglhrg="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8bJNKgmCN8="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8bJNKgnn3A="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8bJNKgoBDw="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8bJNKgptAE="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8bJNKgq7Ac="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8bJNKgrdeM="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8b+DKjvaio=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8b+DKjrrYc="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+DKjwbJ0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjrrYc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 385,
+									"top": 126,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+DKjxpmk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjrrYc="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 386,
+									"top": 141,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+DKjysIk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjrrYc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 382,
+									"top": 97,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+DKjzx8Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjsXws="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 598,
+									"top": 106,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+Daj0vqE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjsXws="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 597,
+									"top": 119,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+Daj1Maw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjsXws="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 600,
+									"top": 78,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+Daj2MUI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjtZ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 172,
+									"top": 148,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+Daj3k/8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjtZ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 175,
+									"top": 161,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8b+Daj4ops=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjtZ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 165,
+									"top": 121,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8b+Daj5uMg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjsXws="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8b+Daj69YE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8b+DKjvaio="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8b+DKjtZ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8LrX6OfnoY="
+							},
+							"lineStyle": 1,
+							"points": "623:95;145:142",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8b+DKjwbJ0="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8b+DKjxpmk="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8b+DKjysIk="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8b+DKjzx8Y="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8b+Daj0vqE="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8b+Daj1Maw="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8b+Daj2MUI="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8b+Daj3k/8="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8b+Daj4ops="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8b+Daj5uMg="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8b+Daj69YE="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8fr16vMtQc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8fr1avIc20="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vNFxc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avIc20="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 350,
+									"top": 185,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vOE4c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avIc20="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 348,
+									"top": 200,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vPA64=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avIc20="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 353,
+									"top": 156,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vQUoo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avJSV0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 531,
+									"top": 206,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vRVoE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avJSV0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 527,
+									"top": 219,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vSYZs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avJSV0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 538,
+									"top": 180,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vT7GA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avKkKY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 165,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vUmCQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avKkKY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 179,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8fr16vV87M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avKkKY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 167,
+									"top": 138,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8fr16vW1gc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avJSV0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8fr16vX8f4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8fr16vMtQc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8fr1avKkKY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8KLnKNwoas="
+							},
+							"lineStyle": 1,
+							"points": "559:201;145:154",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8fr16vNFxc="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8fr16vOE4c="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8fr16vPA64="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8fr16vQUoo="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8fr16vRVoE="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8fr16vSYZs="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8fr16vT7GA="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8fr16vUmCQ="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8fr16vV87M="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8fr16vW1gc="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8fr16vX8f4="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8gqPK0AlUI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8gqPKz8mcA="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0B4Gg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz8mcA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 220,
+									"top": 321,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0C/Yc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz8mcA="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 233,
+									"top": 313,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0DGNE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz8mcA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 195,
+									"top": 338,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0EFqg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz9N/8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 163,
+									"top": 232,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0Fr7g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz9N/8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 176,
+									"top": 227,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0GGRI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz9N/8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 138,
+									"top": 243,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0HlvQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz+4UE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 277,
+									"top": 411,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0Iqnc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz+4UE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 287,
+									"top": 401,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8gqPK0JW0Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz+4UE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 256,
+									"top": 429,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8gqPK0KDLE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz9N/8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8gqPK0Lk+k=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8gqPK0AlUI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8gqPKz+4UE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8RpaaSI3HU="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"lineStyle": 1,
+							"points": "137:225;279:447",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8gqPK0B4Gg="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8gqPK0C/Yc="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8gqPK0DGNE="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8gqPK0EFqg="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8gqPK0Fr7g="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8gqPK0GGRI="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8gqPK0HlvQ="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8gqPK0Iqnc="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8gqPK0JW0Y="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8gqPK0KDLE="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8gqPK0Lk+k="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8g4562OIAg=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8g4562KJq8="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562PNAs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562KJq8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 181,
+									"top": 473,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562QA0I=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562KJq8="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 177,
+									"top": 459,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562Rg/o=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562KJq8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 188,
+									"top": 502,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562SC4I=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562Lk9I="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 166,
+									"top": 477,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562Ttg4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562Lk9I="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 164,
+									"top": 464,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562UzmQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562Lk9I="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 505,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562Vkck=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562MA5U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 195,
+									"top": 469,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562W7i4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562MA5U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 190,
+									"top": 457,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8g4562XIrs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562MA5U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 207,
+									"top": 494,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8g4562Yvsc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562Lk9I="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8g4562ZTcs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8g4562OIAg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8g4562MA5U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8RpaaSI3HU="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe74tNKJei7k="
+							},
+							"lineStyle": 1,
+							"points": "145:505;225:483",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8g4562PNAs="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8g4562QA0I="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8g4562Rg/o="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8g4562SC4I="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8g4562Ttg4="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8g4562UzmQ="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8g4562Vkck="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8g4562W7i4="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8g4562XIrs="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8g4562Yvsc="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8g4562ZTcs="
+							}
+						},
+						{
+							"_type": "UMLIncludeView",
+							"_id": "AAAAAAFpe8h6z6/lR2k=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8h6z6/jWvo="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8h6z6/mRmA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8h6z6/jWvo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 859,
+									"top": 392,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8h6z6/nCOY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8h6z6/jWvo="
+									},
+									"font": "Arial;13;0",
+									"left": 847,
+									"top": 391,
+									"width": 55.65625,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"edgePosition": 1,
+									"text": "«include»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8h6z6/oSwU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8h6z6/jWvo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 830,
+									"top": 393,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8h6z6/lR2k="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8PfmKQrOsM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8P6N6RZDco="
+							},
+							"lineStyle": 1,
+							"points": "845:376;846:423",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8h6z6/mRmA="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8h6z6/nCOY="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8h6z6/oSwU="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8iv+7CeqrY=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8iv+rCcljc="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8iv+7CfNPk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8iv+7Cg1S4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8iv+7CfNPk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 704,
+											"top": -240,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8iv+7ChFEA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8iv+7CfNPk="
+											},
+											"font": "Arial;13;1",
+											"left": 786.5,
+											"top": 578,
+											"width": 131,
+											"height": 13,
+											"text": "deleteOwnComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8iv+7CiWbM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8iv+7CfNPk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 704,
+											"top": -240,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8iv+7CjKNY=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8iv+7CfNPk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 704,
+											"top": -240,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 781.5,
+									"top": 571,
+									"width": 141,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8iv+7Cg1S4="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8iv+7ChFEA="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8iv+7CiWbM="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8iv+7CjKNY="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8iv+7CkKU0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 352,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8iv+7Clhhw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 352,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8iv+7CmqCo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 352,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8iv+7CnNTc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 352,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8iv+7Co6xE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8iv+7CeqrY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8iv+rCcljc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 352,
+									"top": -120,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 752,
+							"top": 552,
+							"width": 200,
+							"height": 64,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8iv+7CfNPk="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8iv+7CkKU0="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8iv+7Clhhw="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8iv+7CmqCo="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8iv+7CnNTc="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8iv+7Co6xE="
+							}
+						},
+						{
+							"_type": "UMLIncludeView",
+							"_id": "AAAAAAFpe8jZnLHebAU=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8jZnLHcsxc="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8jZnLHfz+0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8jZnLHcsxc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 834,
+									"top": 521,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8jZnLHgpdo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8jZnLHcsxc="
+									},
+									"font": "Arial;13;0",
+									"left": 792,
+									"top": 521,
+									"width": 55.65625,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"edgePosition": 1,
+									"text": "«include»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8jZnLHhNks=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8jZnLHcsxc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 863,
+									"top": 522,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8jZnLHebAU="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8PfmKQrOsM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8iv+7CeqrY="
+							},
+							"lineStyle": 1,
+							"points": "850:551;849:505",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8jZnLHfz+0="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8jZnLHgpdo="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8jZnLHhNks="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8kfKrTVWZo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8kfKrTRv6c="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTW460=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTRv6c="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 464,
+									"top": 609,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTX5Dc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTRv6c="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 468,
+									"top": 595,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTYkZ8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTRv6c="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 455,
+									"top": 638,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTZldw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTSwTM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 523,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTaNOw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTSwTM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 180,
+									"top": 511,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTbYcw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTSwTM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 162,
+									"top": 549,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTcGUk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTTqKs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 754,
+									"top": 695,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTdDbE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTTqKs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 755,
+									"top": 681,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8kfKrTeF08=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTTqKs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 750,
+									"top": 722,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8kfKrTfHlE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTSwTM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8kfKrTgrds=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8kfKrTVWZo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8kfKrTTqKs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8O4QaP8JVM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe74tNKJei7k="
+							},
+							"lineStyle": 1,
+							"points": "145:537;775:723",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8kfKrTW460="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8kfKrTX5Dc="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8kfKrTYkZ8="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8kfKrTZldw="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8kfKrTaNOw="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8kfKrTbYcw="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8kfKrTcGUk="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8kfKrTdDbE="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8kfKrTeF08="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8kfKrTfHlE="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8kfKrTgrds="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8ksjbWB3vw=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8ksjbV9Fno="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWCRYE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV9Fno="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 458,
+									"top": 781,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWD0kM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV9Fno="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 456,
+									"top": 766,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWE/rg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV9Fno="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 461,
+									"top": 810,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWFM9M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV+v48="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 168,
+									"top": 816,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWGnLw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV+v48="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 803,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWH4XM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV+v48="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 168,
+									"top": 844,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWInUI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV/7io="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 747,
+									"top": 746,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWJdOo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV/7io="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 743,
+									"top": 733,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ksjbWKX8Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV/7io="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 755,
+									"top": 773,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ksjbWLRuU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV+v48="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ksjbWMHX8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ksjbWB3vw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ksjbV/7io="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8O4QaP8JVM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe73eVqIx8wc="
+							},
+							"lineStyle": 1,
+							"points": "145:841;775:764",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8ksjbWCRYE="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8ksjbWD0kM="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8ksjbWE/rg="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ksjbWFM9M="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8ksjbWGnLw="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ksjbWH4XM="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ksjbWInUI="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8ksjbWJdOo="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ksjbWKX8Y="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ksjbWLRuU="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ksjbWMHX8="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8naz7qLlDg=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8naz7qJ1Z8="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8naz7qMfWY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8naz7qNfNY=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8naz7qMfWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 384,
+											"top": 368,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8naz7qOdj4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8naz7qMfWY="
+											},
+											"font": "Arial;13;1",
+											"left": 809.5,
+											"top": 902.5,
+											"width": 126,
+											"height": 13,
+											"text": "previewComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8naz7qPN7g=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8naz7qMfWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 384,
+											"top": 368,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8naz7qQtrU=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8naz7qMfWY="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 384,
+											"top": 368,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 804.5,
+									"top": 895.5,
+									"width": 136,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8naz7qNfNY="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8naz7qOdj4="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8naz7qPN7g="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8naz7qQtrU="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8naz7qRTZo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 192,
+									"top": 184,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8naz7qSqE4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 192,
+									"top": 184,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8naz7qT0fM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 192,
+									"top": 184,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8naz7qUqBE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 192,
+									"top": 184,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8naz7qVIDw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8naz7qLlDg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8naz7qJ1Z8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 192,
+									"top": 184,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 776,
+							"top": 880,
+							"width": 193,
+							"height": 57,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8naz7qMfWY="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8naz7qRTZo="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8naz7qSqE4="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8naz7qT0fM="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8naz7qUqBE="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8naz7qVIDw="
+							}
+						},
+						{
+							"_type": "UMLExtendView",
+							"_id": "AAAAAAFpe8oB8LxAw6A=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8oB8Lw+Pyo="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8oB8LxBzI8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 857,
+									"top": 833,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8oB8LxCa1g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
+									},
+									"font": "Arial;13;0",
+									"left": 816,
+									"top": 833,
+									"width": 53.49169921875,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"edgePosition": 1,
+									"text": "«extend»"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8oB8LxDC9c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 886,
+									"top": 834,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8oB8LxAw6A="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8O4QaP8JVM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8naz7qLlDg="
+							},
+							"lineStyle": 1,
+							"points": "872:879;872:801",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8oB8LxBzI8="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8oB8LxCa1g="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8oB8LxDC9c="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8ogfr1BhhI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8ogfr0/XnY="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1C5yg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8ogfr1DJew=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8ogfr1C5yg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 544,
+											"top": 256,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8ogfr1ECHc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8ogfr1C5yg="
+											},
+											"font": "Arial;13;1",
+											"left": 382,
+											"top": 858.5,
+											"width": 109,
+											"height": 13,
+											"text": "voteComment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8ogfr1FlWc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8ogfr1C5yg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 544,
+											"top": 256,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8ogfr1G5W0=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8ogfr1C5yg="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 544,
+											"top": 256,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 377,
+									"top": 851.5,
+									"width": 119,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8ogfr1DJew="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8ogfr1ECHc="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8ogfr1FlWc="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8ogfr1G5W0="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1HBbQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 272,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1IDrE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 272,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1JjOc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 272,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1KNb8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 272,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8ogfr1L5Ik=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ogfr1BhhI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ogfr0/XnY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 272,
+									"top": 128,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 352,
+							"top": 840,
+							"width": 169,
+							"height": 49,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1C5yg="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1HBbQ="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1IDrE="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1JjOc="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1KNb8="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8ogfr1L5Ik="
+							}
+						},
+						{
+							"_type": "UMLUseCaseView",
+							"_id": "AAAAAAFpe8pwTL/oqHM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8pwTL/mWkg="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe8pwTL/pxBA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8pwTb/qoyE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8pwTL/pxBA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 368,
+											"top": -32,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8pwTb/rutk=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8pwTL/pxBA="
+											},
+											"font": "Arial;13;1",
+											"left": 565,
+											"top": 730.5,
+											"width": 103,
+											"height": 13,
+											"text": "search"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8pwTb/semQ=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8pwTL/pxBA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 368,
+											"top": -32,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model1)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe8pwTb/tM5M=",
+											"_parent": {
+												"$ref": "AAAAAAFpe8pwTL/pxBA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 368,
+											"top": -32,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 560,
+									"top": 723.5,
+									"width": 113,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe8pwTb/qoyE="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe8pwTb/rutk="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe8pwTb/semQ="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe8pwTb/tM5M="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe8pwTb/uw6Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": -16,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe8pwTb/vZM8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": -16,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe8pwTb/wEHo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": -16,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe8pwTb/xhzc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": -16,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLExtensionPointCompartmentView",
+									"_id": "AAAAAAFpe8pwTb/yJQs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8pwTL/oqHM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8pwTL/mWkg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": -16,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 536,
+							"top": 704,
+							"width": 161,
+							"height": 65,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe8pwTL/pxBA="
+							},
+							"suppressAttributes": true,
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe8pwTb/uw6Y="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe8pwTb/vZM8="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe8pwTb/wEHo="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe8pwTb/xhzc="
+							},
+							"extensionPointCompartment": {
+								"$ref": "AAAAAAFpe8pwTb/yJQs="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8tar8MJAaM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8tarsMFO18="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MKSkQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMFO18="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 336,
+									"top": 773,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MLJBg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMFO18="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 333,
+									"top": 758,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MMyIs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMFO18="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 343,
+									"top": 802,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MNAS8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMGPXU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 167,
+									"top": 809,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MOgYI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMGPXU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 166,
+									"top": 796,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MPkbs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMGPXU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 168,
+									"top": 837,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MQtOE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMHI3w="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 506,
+									"top": 737,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MR2Jc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMHI3w="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 501,
+									"top": 725,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tar8MSAHA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMHI3w="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 516,
+									"top": 763,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8tar8MTdEs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMGPXU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8tar8MUGFU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tar8MJAaM="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tarsMHI3w="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8pwTL/oqHM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe73eVqIx8wc="
+							},
+							"lineStyle": 1,
+							"points": "145:836;535:753",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8tar8MKSkQ="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8tar8MLJBg="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8tar8MMyIs="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8tar8MNAS8="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8tar8MOgYI="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8tar8MPkbs="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8tar8MQtOE="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8tar8MR2Jc="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8tar8MSAHA="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8tar8MTdEs="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8tar8MUGFU="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8tt78PiJz4=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8tt7sPeam0="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78PjcDw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPeam0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 345,
+									"top": 603,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78PkyaM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPeam0="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 351,
+									"top": 589,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78Pl3vc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPeam0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 334,
+									"top": 630,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78Pmlj4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPfDhY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 532,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78PnduI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPfDhY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 181,
+									"top": 521,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78Po4QE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPfDhY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 160,
+									"top": 556,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78Pp0S0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPgUbQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 516,
+									"top": 673,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78PqlzM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPgUbQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 519,
+									"top": 660,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8tt78Pre5Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPgUbQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 510,
+									"top": 700,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8tt78PsYLY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPfDhY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8tt78PtiB0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8tt78PiJz4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8tt7sPgUbQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8pwTL/oqHM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe74tNKJei7k="
+							},
+							"lineStyle": 1,
+							"points": "145:543;535:703",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8tt78PjcDw="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8tt78PkyaM="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8tt78Pl3vc="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8tt78Pmlj4="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8tt78PnduI="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8tt78Po4QE="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8tt78Pp0S0="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8tt78PqlzM="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8tt78Pre5Q="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8tt78PsYLY="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8tt78PtiB0="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8t8E8TKTB8=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8t8E8TGI7c="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8E8TLNSQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TGI7c="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 376,
+									"top": 440,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8E8TMKZI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TGI7c="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 387,
+									"top": 430,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8E8TNAKk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TGI7c="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 353,
+									"top": 461,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8E8TO32U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8THAiU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 173,
+									"top": 214,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8FMTPdDg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8THAiU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 184,
+									"top": 207,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8FMTQEBw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8THAiU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 150,
+									"top": 229,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8FMTRkes=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TIqpw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 579,
+									"top": 667,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8FMTS7iU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TIqpw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 588,
+									"top": 657,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8t8FMTT2Xw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TIqpw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 562,
+									"top": 689,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8t8FMTUn7s=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8THAiU="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8t8FMTV0w8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8t8E8TKTB8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8t8E8TIqpw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8pwTL/oqHM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"lineStyle": 1,
+							"points": "145:211;586:703",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8t8E8TLNSQ="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8t8E8TMKZI="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8t8E8TNAKk="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8t8E8TO32U="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8t8FMTPdDg="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8t8FMTQEBw="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8t8FMTRkes="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8t8FMTS7iU="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8t8FMTT2Xw="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8t8FMTUn7s="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8t8FMTV0w8="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8uLTsXBAdI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8uLTsW9CsI="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXCX0Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW9CsI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 439,
+									"top": 213,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXDfyY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW9CsI="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 443,
+									"top": 198,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXErBE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW9CsI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 432,
+									"top": 242,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXFYBg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW+X4s="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 173,
+									"top": 147,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXGROE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW+X4s="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 179,
+									"top": 135,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXHsz4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW+X4s="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 163,
+									"top": 173,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXI9Yw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW/5/4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 705,
+									"top": 279,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXJtbs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW/5/4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 706,
+									"top": 265,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8uLTsXKfWU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW/5/4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 702,
+									"top": 306,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8uLTsXLScY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW+X4s="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8uLTsXMHTE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8uLTsXBAdI="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8uLTsW/5/4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8P6N6RZDco="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"lineStyle": 1,
+							"points": "145:162;727:306",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8uLTsXCX0Y="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8uLTsXDfyY="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8uLTsXErBE="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8uLTsXFYBg="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8uLTsXGROE="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8uLTsXHsz4="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8uLTsXI9Yw="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8uLTsXJtbs="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8uLTsXKfWU="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8uLTsXLScY="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8uLTsXMHTE="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8ulw8bHxHs=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8ulw8bDHbo="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulw8bII3A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bDHbo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 477,
+									"top": 345,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulw8bJ0HA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bDHbo="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 484,
+									"top": 332,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbKLKU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bDHbo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 462,
+									"top": 372,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbLvj8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bECXs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 173,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbMQXY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bECXs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 183,
+									"top": 163,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbNBc0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bECXs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 157,
+									"top": 195,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbOB1I=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bFsgA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 779,
+									"top": 519,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbPIko=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bFsgA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 784,
+									"top": 506,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8ulxMbQ0yI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bFsgA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 770,
+									"top": 545,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ulxMbR6Q0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bECXs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8ulxMbSmew=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8ulw8bHxHs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8ulw8bFsgA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8iv+7CeqrY="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"lineStyle": 1,
+							"points": "145:180;795:551",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8ulw8bII3A="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8ulw8bJ0HA="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8ulxMbKLKU="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ulxMbLvj8="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8ulxMbMQXY="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ulxMbNBc0="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8ulxMbOB1I="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8ulxMbPIko="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8ulxMbQ0yI="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ulxMbR6Q0="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8ulxMbSmew="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8u/kMfcm+o=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8u/kMfYjtY="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kMfdJ8M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfYjtY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 453,
+									"top": 278,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kMfeiZg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfYjtY="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 459,
+									"top": 264,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kMff9dI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfYjtY="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 442,
+									"top": 305,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kMfg6Tc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfZtxI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 162,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kMfhZYc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfZtxI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 181,
+									"top": 150,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kcfi/j8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfZtxI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 160,
+									"top": 185,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kcfjXhM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfaSd8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 732,
+									"top": 394,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kcfk6vk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfaSd8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 735,
+									"top": 381,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8u/kcflCZo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfaSd8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 726,
+									"top": 421,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8u/kcfmqdU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfZtxI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8u/kcfna8Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8u/kMfcm+o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8u/kMfaSd8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8PfmKQrOsM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"lineStyle": 1,
+							"points": "145:172;751:424",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8u/kMfdJ8M="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8u/kMfeiZg="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8u/kMff9dI="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8u/kMfg6Tc="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8u/kMfhZYc="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8u/kcfi/j8="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8u/kcfjXhM="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8u/kcfk6vk="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8u/kcflCZo="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8u/kcfmqdU="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8u/kcfna8Q="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8vN7MkA+Js=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8vN7Mj8nxM="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkBzaI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj8nxM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 446,
+									"top": 472,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkCuxg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj8nxM="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 445,
+									"top": 457,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkD96M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj8nxM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 449,
+									"top": 501,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkEBqs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj9xhM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 493,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkFR1U=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj9xhM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 171,
+									"top": 479,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkGTZQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj9xhM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 167,
+									"top": 520,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkHLOM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj+ei4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 723,
+									"top": 451,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkIQ5w=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj+ei4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 720,
+									"top": 438,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vN7MkJLo8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj+ei4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 730,
+									"top": 479,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8vN7MkK4Fw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj9xhM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8vN7ckLL6M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vN7MkA+Js="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vN7Mj+ei4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8PfmKQrOsM="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe74tNKJei7k="
+							},
+							"lineStyle": 1,
+							"points": "145:516;751:471",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8vN7MkBzaI="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8vN7MkCuxg="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8vN7MkD96M="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8vN7MkEBqs="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8vN7MkFR1U="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8vN7MkGTZQ="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8vN7MkHLOM="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8vN7MkIQ5w="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8vN7MkJLo8="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8vN7MkK4Fw="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8vN7ckLL6M="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8vbCsozdCs=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8vbCsov+gA="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso06vk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsov+gA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 449,
+									"top": 529,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso1Kfw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsov+gA="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 450,
+									"top": 514,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso2+F8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsov+gA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 446,
+									"top": 558,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso3zAE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsowr9g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 172,
+									"top": 506,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso4YYE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsowr9g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 175,
+									"top": 493,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso5DV0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsowr9g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 165,
+									"top": 533,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso6vtQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsoxCCs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 726,
+									"top": 551,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso7PWA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsoxCCs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 725,
+									"top": 538,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8vbCso8YKI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsoxCCs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 728,
+									"top": 579,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8vbCso98nk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsowr9g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8vbCso+c8A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8vbCsozdCs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8vbCsoxCCs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8iv+7CeqrY="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe74tNKJei7k="
+							},
+							"lineStyle": 1,
+							"points": "145:525;751:575",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8vbCso06vk="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8vbCso1Kfw="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8vbCso2+F8="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8vbCso3zAE="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8vbCso4YYE="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8vbCso5DV0="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8vbCso6vtQ="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8vbCso7PWA="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8vbCso8YKI="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8vbCso98nk="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8vbCso+c8A="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe8xCs86ilRo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe8xCs86e+z0="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCs86jY8g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86e+z0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 248,
+									"top": 834,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCs86kOZc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86e+z0="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 249,
+									"top": 819,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCs86lhxI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86e+z0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 247,
+									"top": 863,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCs86mvXQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86fW/M="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 171,
+									"top": 831,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCtM6nRyo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86fW/M="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 174,
+									"top": 817,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCtM6of/g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86fW/M="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 166,
+									"top": 858,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCtM6p1Og=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86gwD0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 325,
+									"top": 837,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCtM6qqcE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86gwD0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 323,
+									"top": 824,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe8xCtM6rgVE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86gwD0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 328,
+									"top": 865,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8xCtM6s47Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86fW/M="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe8xCtM6tmSA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe8xCs86ilRo="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe8xCs86gwD0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8ogfr1BhhI="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe73eVqIx8wc="
+							},
+							"lineStyle": 1,
+							"points": "145:851;351:860",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe8xCs86jY8g="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe8xCs86kOZc="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe8xCs86lhxI="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe8xCs86mvXQ="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe8xCtM6nRyo="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8xCtM6of/g="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe8xCtM6p1Og="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe8xCtM6qqcE="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe8xCtM6rgVE="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8xCtM6s47Q="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe8xCtM6tmSA="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe83rMPT91bk=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe83rMPT5oxo="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPT+RHo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT5oxo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 445,
+									"top": 701,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPT/dH0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT5oxo="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 440,
+									"top": 687,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUAvHs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT5oxo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 454,
+									"top": 730,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUBNIM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT6N0k="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 164,
+									"top": 799,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUCVBQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT6N0k="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 162,
+									"top": 786,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUDPxQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT6N0k="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 826,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUEtyQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT7ojE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 726,
+									"top": 604,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUFm6o=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT7ojE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 720,
+									"top": 592,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe83rMPUGpWY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT7ojE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 739,
+									"top": 628,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe83rMPUHxCw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT6N0k="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe83rMPUIEPQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe83rMPT91bk="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe83rMPT7ojE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe8iv+7CeqrY="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe73eVqIx8wc="
+							},
+							"lineStyle": 1,
+							"points": "145:828;756:616",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe83rMPT+RHo="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe83rMPT/dH0="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe83rMPUAvHs="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe83rMPUBNIM="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe83rMPUCVBQ="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe83rMPUDPxQ="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe83rMPUEtyQ="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe83rMPUFm6o="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe83rMPUGpWY="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe83rMPUHxCw="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe83rMPUIEPQ="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpfL3ux8Wdh8o=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7xMGqH8A8A="
+							},
+							"model": {
+								"$ref": "AAAAAAFpfL3uxsWZKZ8="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WerZc=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWZKZ8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 466,
+									"top": 452,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WfT7U=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWZKZ8="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 457,
+									"top": 464,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WgUuo=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWZKZ8="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 485,
+									"top": 429,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WhpFI=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWab5g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 778,
+									"top": 693,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WiBa0=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWab5g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 768,
+									"top": 702,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8Wjmys=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWab5g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 798,
+									"top": 673,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3ux8WkIj4=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWbHks="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 156,
+									"top": 213,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3uyMWl4WE=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWbHks="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 150,
+									"top": 225,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpfL3uyMWmZ+0=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWbHks="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 169,
+									"top": 189,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpfL3uyMWnMTI=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWab5g="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpfL3uyMWo42Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpfL3ux8Wdh8o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpfL3uxsWbHks="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe7yoQKIFgzc="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe8O4QaP8JVM="
+							},
+							"lineStyle": 1,
+							"points": "808:703;145:192",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpfL3ux8WerZc="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpfL3ux8WfT7U="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpfL3ux8WgUuo="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpfL3ux8WhpFI="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpfL3ux8WiBa0="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpfL3ux8Wjmys="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpfL3ux8WkIj4="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpfL3uyMWl4WE="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpfL3uyMWmZ+0="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpfL3uyMWnMTI="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpfL3uyMWo42Y="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLActor",
+					"_id": "AAAAAAFpe7yoQKIDgWo=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "Dozent",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8STtKS0MIQ=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8STtKS17oU=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8STtKS0MIQ="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8STtKS2dy4=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8STtKS0MIQ="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8DNKqKt5Jw="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8gqPKz8mcA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8gqPKz9N/8=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8gqPKz8mcA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8gqPKz+4UE=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8gqPKz8mcA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8RpZ6SGnoo="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8k79rY4Nw4=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8k79rY5Gtw=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8k79rY4Nw4="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8k79rY6oOE=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8k79rY4Nw4="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8O4QaP6YNs="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8t8E8TGI7c=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8t8E8THAiU=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8t8E8TGI7c="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8t8E8TIqpw=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8t8E8TGI7c="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8pwTL/mWkg="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8uLTsW9CsI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8uLTsW+X4s=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8uLTsW9CsI="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8uLTsW/5/4=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8uLTsW9CsI="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8P6N6RXqcw="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8ulw8bDHbo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ulw8bECXs=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ulw8bDHbo="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ulw8bFsgA=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ulw8bDHbo="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8iv+rCcljc="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8u/kMfYjtY=",
+							"_parent": {
+								"$ref": "AAAAAAFpe7yoQKIDgWo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8u/kMfZtxI=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8u/kMfYjtY="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8u/kMfaSd8=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8u/kMfYjtY="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8PfmKQpMNk="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLActor",
+					"_id": "AAAAAAFpe73eVqIvxOo=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "Student",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8ksjbV9Fno=",
+							"_parent": {
+								"$ref": "AAAAAAFpe73eVqIvxOo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ksjbV+v48=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ksjbV9Fno="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe73eVqIvxOo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ksjbV/7io=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ksjbV9Fno="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8O4QaP6YNs="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8tarsMFO18=",
+							"_parent": {
+								"$ref": "AAAAAAFpe73eVqIvxOo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8tarsMGPXU=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8tarsMFO18="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe73eVqIvxOo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8tarsMHI3w=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8tarsMFO18="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8pwTL/mWkg="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8xCs86e+z0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe73eVqIvxOo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8xCs86fW/M=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8xCs86e+z0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe73eVqIvxOo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8xCs86gwD0=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8xCs86e+z0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8ogfr0/XnY="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe83rMPT5oxo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe73eVqIvxOo="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe83rMPT6N0k=",
+								"_parent": {
+									"$ref": "AAAAAAFpe83rMPT5oxo="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe73eVqIvxOo="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe83rMPT7ojE=",
+								"_parent": {
+									"$ref": "AAAAAAFpe83rMPT5oxo="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8iv+rCcljc="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLActor",
+					"_id": "AAAAAAFpe74tNKJcZCg=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "Moderator",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8g4562KJq8=",
+							"_parent": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8g4562Lk9I=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8g4562KJq8="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe74tNKJcZCg="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8g4562MA5U=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8g4562KJq8="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8RpZ6SGnoo="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8kfKrTRv6c=",
+							"_parent": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8kfKrTSwTM=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8kfKrTRv6c="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe74tNKJcZCg="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8kfKrTTqKs=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8kfKrTRv6c="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8O4QaP6YNs="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8tt7sPeam0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8tt7sPfDhY=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8tt7sPeam0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe74tNKJcZCg="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8tt7sPgUbQ=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8tt7sPeam0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8pwTL/mWkg="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8vN7Mj8nxM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8vN7Mj9xhM=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8vN7Mj8nxM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe74tNKJcZCg="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8vN7Mj+ei4=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8vN7Mj8nxM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8PfmKQpMNk="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8vbCsov+gA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe74tNKJcZCg="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8vbCsowr9g=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8vbCsov+gA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe74tNKJcZCg="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8vbCsoxCCs=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8vbCsov+gA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8iv+rCcljc="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCaseSubject",
+					"_id": "AAAAAAFpe7+De6KR5QE=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "Arsnova-lite comment service"
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8DNKqKt5Jw=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "exportComments",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8TwwqVZYHk=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8DNKqKt5Jw="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8TwwqVa/uM=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8TwwqVZYHk="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8DNKqKt5Jw="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8TwwqVbNNA=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8TwwqVZYHk="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8GOZaLfPXg=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "Favorite",
+					"ownedElements": [
+						{
+							"_type": "UMLExtend",
+							"_id": "AAAAAAFpe8Y55qZx+44=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8GOZaLfPXg="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8GOZaLfPXg="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8VAuaWlECU="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8HchqMONmE=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "rightAnswer",
+					"ownedElements": [
+						{
+							"_type": "UMLExtend",
+							"_id": "AAAAAAFpe8Yi+aZRJmM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8HchqMONmE="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8HchqMONmE="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8VAuaWlECU="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8JRqKM+ipY=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "filterComments",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8bJMqgcG5E=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8JRqKM+ipY="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8bJMqgdurY=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8bJMqgcG5E="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8JRqKM+ipY="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8bJMqge8ag=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8bJMqgcG5E="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8KLnKNuXzA=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "manageModerators",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8fr1avIc20=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8KLnKNuXzA="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8fr1avJSV0=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8fr1avIc20="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8KLnKNuXzA="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8fr1avKkKY=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8fr1avIc20="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8LrX6Od4VU=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "presentComment",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8b+DKjrrYc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8LrX6Od4VU="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8b+DKjsXws=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8b+DKjrrYc="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8LrX6Od4VU="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8b+DKjtZ0A=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8b+DKjrrYc="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8McIqPMS04=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "read",
+					"ownedElements": [
+						{
+							"_type": "UMLExtend",
+							"_id": "AAAAAAFpe8YGLqYxXt0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8McIqPMS04="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8McIqPMS04="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8VAuaWlECU="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8O4QaP6YNs=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "createComment",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpfL3uxsWZKZ8=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8O4QaP6YNs="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpfL3uxsWab5g=",
+								"_parent": {
+									"$ref": "AAAAAAFpfL3uxsWZKZ8="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8O4QaP6YNs="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpfL3uxsWbHks=",
+								"_parent": {
+									"$ref": "AAAAAAFpfL3uxsWZKZ8="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8PfmKQpMNk=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "deleteComment"
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8P6N6RXqcw=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "deleteMultipleComments",
+					"ownedElements": [
+						{
+							"_type": "UMLInclude",
+							"_id": "AAAAAAFpe8h6z6/jWvo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8P6N6RXqcw="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8P6N6RXqcw="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8PfmKQpMNk="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8RpZ6SGnoo=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "hideComment"
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8VAuaWlECU=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "markComment",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe8ZOYqaRqtA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8VAuaWlECU="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ZOYqaSkaU=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ZOYqaRqtA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe8VAuaWlECU="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe8ZOYqaTdP4=",
+								"_parent": {
+									"$ref": "AAAAAAFpe8ZOYqaRqtA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe7yoQKIDgWo="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8iv+rCcljc=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "deleteOwnComment",
+					"ownedElements": [
+						{
+							"_type": "UMLInclude",
+							"_id": "AAAAAAFpe8jZnLHcsxc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8iv+rCcljc="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8iv+rCcljc="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8PfmKQpMNk="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8naz7qJ1Z8=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "previewComment",
+					"ownedElements": [
+						{
+							"_type": "UMLExtend",
+							"_id": "AAAAAAFpe8oB8Lw+Pyo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe8naz7qJ1Z8="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe8naz7qJ1Z8="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe8O4QaP6YNs="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8ogfr0/XnY=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "voteComment"
+				},
+				{
+					"_type": "UMLUseCase",
+					"_id": "AAAAAAFpe8pwTL/mWkg=",
+					"_parent": {
+						"$ref": "AAAAAAFpe7xMGqH7VRk="
+					},
+					"name": "search"
+				}
+			]
+		},
+		{
+			"_type": "UMLModel",
+			"_id": "AAAAAAFpe9ROcQmWko8=",
+			"_parent": {
+				"$ref": "AAAAAAFF+h6SjaM2Hec="
+			},
+			"name": "Model3",
+			"ownedElements": [
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9SGnAoTs7U=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Comment",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe9sc2w4BjJE=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9sc2w4CQ0A=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9sc2w4BjJE="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								},
+								"multiplicity": "0..*"
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9sc2w4DZ4Y=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9sc2w4BjJE="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9bk5QpDsyI="
+								},
+								"multiplicity": "1"
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe+DNtxrKcoA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+DNtxrLbUo=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+DNtxrKcoA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								},
+								"multiplicity": "0..*"
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+DNuBrM4Gk=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+DNtxrKcoA="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								},
+								"aggregation": "shared",
+								"multiplicity": "1"
+							}
+						}
+					],
+					"attributes": [
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpe/QMDqasmDM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"name": "body",
+							"visibility": "private",
+							"type": "string"
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpe/UfLKqffMM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"name": "creationTimeStamp",
+							"type": "number"
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpe/Y+qq2kifo=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"name": "score",
+							"type": "number"
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9bk5QpDsyI=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Room",
+					"attributes": [
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpfDKBObNg+fI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9bk5QpDsyI="
+							},
+							"name": "name",
+							"type": "string"
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpfDKvDrUYG18=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9bk5QpDsyI="
+							},
+							"name": "description",
+							"type": "string"
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9cdEApv9ro=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Dozent",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe9vzGw5zklM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9vzGw50AI4=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9vzGw5zklM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9cdEApv9ro="
+								},
+								"multiplicity": "1"
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9vzGw51XIg=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9vzGw5zklM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9bk5QpDsyI="
+								},
+								"multiplicity": "1..*"
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe9xYQA8D0a4=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9xYQA8EkEs=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9xYQA8D0a4="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9cdEApv9ro="
+								}
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9xYQA8FyRc=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9xYQA8D0a4="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								}
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe9yv4hANCP0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9yv4hAOWTg=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9yv4hANCP0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9cdEApv9ro="
+								},
+								"navigable": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9yv4hAP6I8=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9yv4hANCP0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								}
+							}
+						},
+						{
+							"_type": "UMLGeneralization",
+							"_id": "AAAAAAFpe972OxN2368=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9f/bww2l4Q=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "User",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe96SUxHJcGM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe96SUxHKwIM=",
+								"_parent": {
+									"$ref": "AAAAAAFpe96SUxHJcGM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9f/bww2l4Q="
+								},
+								"navigable": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe96SUxHL0gw=",
+								"_parent": {
+									"$ref": "AAAAAAFpe96SUxHJcGM="
+								},
+								"name": "create",
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								}
+							}
+						}
+					],
+					"attributes": [
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpfDON1rq3S/U=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							},
+							"name": "role",
+							"type": "UserRole"
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpfDRQPLz2ulw=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							},
+							"name": "loginId",
+							"type": "string"
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFpfDSNcb6u3DI=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							},
+							"name": "isGuest",
+							"type": "boolean"
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9hDuAxidWQ=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Moderator",
+					"ownedElements": [
+						{
+							"_type": "UMLGeneralization",
+							"_id": "AAAAAAFpe987XBT3cus=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9hDuAxidWQ="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe9hDuAxidWQ="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe+IUoSAbKNM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9hDuAxidWQ="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+IUoSAcNiE=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+IUoSAbKNM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9hDuAxidWQ="
+								},
+								"navigable": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+IUoSAdGwc=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+IUoSAbKNM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9hwjgyOcjs=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Student",
+					"ownedElements": [
+						{
+							"_type": "UMLGeneralization",
+							"_id": "AAAAAAFpe98dDRRJTJc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9hwjgyOcjs="
+							},
+							"source": {
+								"$ref": "AAAAAAFpe9hwjgyOcjs="
+							},
+							"target": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe9+vsRaP3xM=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9hwjgyOcjs="
+							},
+							"name": "vote",
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9+vshaQ76o=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9+vsRaP3xM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9hwjgyOcjs="
+								},
+								"navigable": false,
+								"multiplicity": "1"
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe9+vshaRqeo=",
+								"_parent": {
+									"$ref": "AAAAAAFpe9+vsRaP3xM="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9iaRQy60yI="
+								},
+								"multiplicity": "0..1"
+							}
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe+G60x41kNw=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9hwjgyOcjs="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+G60x42Vwk=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+G60x41kNw="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9hwjgyOcjs="
+								},
+								"navigable": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+G60x43hhM=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+G60x41kNw="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								}
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFpe9iaRQy60yI=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "Vote",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFpe+BI7xmqpv0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9iaRQy60yI="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+BI7xmrGFc=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+BI7xmqpv0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9iaRQy60yI="
+								},
+								"multiplicity": "0..*"
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFpe+BI7xmsygg=",
+								"_parent": {
+									"$ref": "AAAAAAFpe+BI7xmqpv0="
+								},
+								"reference": {
+									"$ref": "AAAAAAFpe9SGnAoTs7U="
+								},
+								"multiplicity": "1"
+							}
+						}
+					]
+				},
+				{
+					"_type": "UMLClassDiagram",
+					"_id": "AAAAAAFpe9ROcQmXUrc=",
+					"_parent": {
+						"$ref": "AAAAAAFpe9ROcQmWko8="
+					},
+					"name": "ClassDiagram",
+					"ownedViews": [
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9SGnAoVT4E=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9SGnAoTs7U="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9SGnAoWtf0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9SGnAoVT4E="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9SGnAoTs7U="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9SGnAoXNF8=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAoWtf0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1344,
+											"top": 896,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9SGnAoYFrM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAoWtf0="
+											},
+											"font": "Arial;13;1",
+											"left": 85,
+											"top": 503,
+											"width": 247,
+											"height": 13,
+											"text": "Comment"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9SGnAoZazE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAoWtf0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1344,
+											"top": 896,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9SGnAoaXLw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAoWtf0="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -1344,
+											"top": 896,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 496,
+									"width": 257,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9SGnAoXNF8="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9SGnAoYFrM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9SGnAoZazE="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9SGnAoaXLw="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9SGnAobTsM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9SGnAoVT4E="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9SGnAoTs7U="
+									},
+									"subViews": [
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpe/QMLqavOEM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAobTsM="
+											},
+											"model": {
+												"$ref": "AAAAAAFpe/QMDqasmDM="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 526,
+											"width": 247,
+											"height": 13,
+											"text": "body: string",
+											"horizontalAlignment": 0
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpe/UfgqqiUKA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAobTsM="
+											},
+											"model": {
+												"$ref": "AAAAAAFpe/UfLKqffMM="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 541,
+											"width": 247,
+											"height": 13,
+											"text": "creationTimeStamp: number",
+											"horizontalAlignment": 0
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpe/Y+8q2nTYk=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9SGnAobTsM="
+											},
+											"model": {
+												"$ref": "AAAAAAFpe/Y+qq2kifo="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 556,
+											"width": 247,
+											"height": 13,
+											"text": "score: number",
+											"horizontalAlignment": 0
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 521,
+									"width": 257,
+									"height": 53
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9SGnAocBBI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9SGnAoVT4E="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9SGnAoTs7U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 531,
+									"width": 51.919921875,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9SGnAodj7Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9SGnAoVT4E="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9SGnAoTs7U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -672,
+									"top": 448,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9SGnAoefUQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9SGnAoVT4E="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9SGnAoTs7U="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -672,
+									"top": 448,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 80,
+							"top": 496,
+							"width": 257,
+							"height": 241,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9SGnAoWtf0="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9SGnAobTsM="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9SGnAocBBI="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9SGnAodj7Q="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9SGnAoefUQ="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9bk5gpFT4k=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9bk5QpDsyI="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9bk5gpGcb8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9bk5gpFT4k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9bk5QpDsyI="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9bk5gpHCZ8=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpGcb8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -512,
+											"top": -192,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9bk5gpIehQ=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpGcb8="
+											},
+											"font": "Arial;13;1",
+											"left": 261,
+											"top": 247,
+											"width": 183,
+											"height": 13,
+											"text": "Room"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9bk5gpJhEE=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpGcb8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -512,
+											"top": -192,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9bk5gpKGiA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpGcb8="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -512,
+											"top": -192,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 256,
+									"top": 240,
+									"width": 193,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9bk5gpHCZ8="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9bk5gpIehQ="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9bk5gpJhEE="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9bk5gpKGiA="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9bk5gpL+Lg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9bk5gpFT4k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9bk5QpDsyI="
+									},
+									"subViews": [
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpfDKBkrNj/VA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpL+Lg="
+											},
+											"model": {
+												"$ref": "AAAAAAFpfDKBObNg+fI="
+											},
+											"font": "Arial;13;0",
+											"left": 261,
+											"top": 270,
+											"width": 183,
+											"height": 13,
+											"text": "name: string",
+											"horizontalAlignment": 0
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpfDKvZ7UbAJ4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9bk5gpL+Lg="
+											},
+											"model": {
+												"$ref": "AAAAAAFpfDKvDrUYG18="
+											},
+											"font": "Arial;13;0",
+											"left": 261,
+											"top": 285,
+											"width": 183,
+											"height": 13,
+											"text": "description: string",
+											"horizontalAlignment": 0
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 256,
+									"top": 265,
+									"width": 193,
+									"height": 38
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9bk5gpM3LQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9bk5gpFT4k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9bk5QpDsyI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 256,
+									"top": 275,
+									"width": 224,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9bk5gpNOWE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9bk5gpFT4k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9bk5QpDsyI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -256,
+									"top": -96,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9bk5gpOyJM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9bk5gpFT4k="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9bk5QpDsyI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -256,
+									"top": -96,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 256,
+							"top": 240,
+							"width": 193,
+							"height": 129,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9bk5gpGcb8="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9bk5gpL+Lg="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9bk5gpM3LQ="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9bk5gpNOWE="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9bk5gpOyJM="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9dW+QqxoKA=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9cdEApv9ro="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9dW+Qqyzlk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9dW+QqxoKA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9cdEApv9ro="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9dW+QqzO7U=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9dW+Qqyzlk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 282,
+											"top": -387,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9dW+Qq0A9g=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9dW+Qqyzlk="
+											},
+											"font": "Arial;13;1",
+											"left": 533,
+											"top": 247,
+											"width": 167,
+											"height": 13,
+											"text": "Dozent"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9dW+Qq16Cs=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9dW+Qqyzlk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 282,
+											"top": -387,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9dW+Qq2mZs=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9dW+Qqyzlk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 282,
+											"top": -387,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 528,
+									"top": 240,
+									"width": 177,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9dW+QqzO7U="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9dW+Qq0A9g="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9dW+Qq16Cs="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9dW+Qq2mZs="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9dW+Qq3hF4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9dW+QqxoKA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9cdEApv9ro="
+									},
+									"font": "Arial;13;0",
+									"left": 528,
+									"top": 265,
+									"width": 177,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9dW+Qq4b/g=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9dW+QqxoKA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9cdEApv9ro="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 528,
+									"top": 275,
+									"width": 144,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9dW+Qq5ZUo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9dW+QqxoKA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9cdEApv9ro="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 288,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9dW+Qq654A=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9dW+QqxoKA="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9cdEApv9ro="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 288,
+									"top": -224,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 528,
+							"top": 240,
+							"width": 177,
+							"height": 129,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9dW+Qqyzlk="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9dW+Qq3hF4="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9dW+Qq4b/g="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9dW+Qq5ZUo="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9dW+Qq654A="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9f/cAw472Y=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9f/bww2l4Q="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9f/cAw51Hk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9f/cAw472Y="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9f/bww2l4Q="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9f/cAw66D8=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw51Hk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -320,
+											"top": -960,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9f/cAw7ZeM=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw51Hk="
+											},
+											"font": "Arial;13;1",
+											"left": 85,
+											"top": 39,
+											"width": 1063,
+											"height": 13,
+											"text": "User"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9f/cAw8Gjg=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw51Hk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -320,
+											"top": -960,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9f/cAw93Zs=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw51Hk="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": -320,
+											"top": -960,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 32,
+									"width": 1073,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9f/cAw66D8="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9f/cAw7ZeM="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9f/cAw8Gjg="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9f/cAw93Zs="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9f/cAw+ipQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9f/cAw472Y="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9f/bww2l4Q="
+									},
+									"subViews": [
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpfDOOILq6i4c=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw+ipQ="
+											},
+											"model": {
+												"$ref": "AAAAAAFpfDON1rq3S/U="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 62,
+											"width": 1063,
+											"height": 13,
+											"text": "role: UserRole",
+											"horizontalAlignment": 0
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpfDRQgrz59kw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw+ipQ="
+											},
+											"model": {
+												"$ref": "AAAAAAFpfDRQPLz2ulw="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 77,
+											"width": 1063,
+											"height": 13,
+											"text": "loginId: string",
+											"horizontalAlignment": 0
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFpfDSNyb6x3wc=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9f/cAw+ipQ="
+											},
+											"model": {
+												"$ref": "AAAAAAFpfDSNcb6u3DI="
+											},
+											"font": "Arial;13;0",
+											"left": 85,
+											"top": 92,
+											"width": 1063,
+											"height": 13,
+											"text": "isGuest: boolean",
+											"horizontalAlignment": 0
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 57,
+									"width": 1073,
+									"height": 53
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9f/cAw/jo4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9f/cAw472Y="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9f/bww2l4Q="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 80,
+									"top": 67,
+									"width": 51.919921875,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9f/cAxAE4o=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9f/cAw472Y="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9f/bww2l4Q="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -160,
+									"top": -480,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9f/cAxB6Co=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9f/cAw472Y="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9f/bww2l4Q="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -160,
+									"top": -480,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 80,
+							"top": 32,
+							"width": 1073,
+							"height": 145,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9f/cAw51Hk="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9f/cAw+ipQ="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9f/cAw/jo4="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9f/cAxAE4o="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9f/cAxB6Co="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9hDuAxk9j4=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9hDuAxidWQ="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9hDuAxlPzA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hDuAxk9j4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hDuAxidWQ="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hDuAxmPD4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hDuAxlPzA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 816,
+											"top": -768,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hDuAxnOII=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hDuAxlPzA="
+											},
+											"font": "Arial;13;1",
+											"left": 741,
+											"top": 247,
+											"width": 167,
+											"height": 13,
+											"text": "Moderator"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hDuAxoU3M=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hDuAxlPzA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 816,
+											"top": -768,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hDuAxp2Hw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hDuAxlPzA="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 816,
+											"top": -768,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 736,
+									"top": 240,
+									"width": 177,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9hDuAxmPD4="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9hDuAxnOII="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9hDuAxoU3M="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9hDuAxp2Hw="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9hDuAxqqvA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hDuAxk9j4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hDuAxidWQ="
+									},
+									"font": "Arial;13;0",
+									"left": 736,
+									"top": 265,
+									"width": 177,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9hDuAxrTc4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hDuAxk9j4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hDuAxidWQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 736,
+									"top": 275,
+									"width": 73.55908203125,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9hDuAxs1/c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hDuAxk9j4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hDuAxidWQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 408,
+									"top": -384,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9hDuAxt43o=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hDuAxk9j4="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hDuAxidWQ="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 408,
+									"top": -384,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 736,
+							"top": 240,
+							"width": 177,
+							"height": 129,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9hDuAxlPzA="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9hDuAxqqvA="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9hDuAxrTc4="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9hDuAxs1/c="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9hDuAxt43o="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9hwjgyQIqw=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9hwjgyOcjs="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9hwjgyRavQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hwjgyQIqw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hwjgyOcjs="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hwjgyS+fs=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hwjgyRavQ="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 752,
+											"top": -880,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hwjgyTj4Q=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hwjgyRavQ="
+											},
+											"font": "Arial;13;1",
+											"left": 949,
+											"top": 247,
+											"width": 191,
+											"height": 13,
+											"text": "Student"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hwjgyUn/4=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hwjgyRavQ="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 752,
+											"top": -880,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9hwjgyVznw=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9hwjgyRavQ="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 752,
+											"top": -880,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 944,
+									"top": 240,
+									"width": 201,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9hwjgyS+fs="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9hwjgyTj4Q="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9hwjgyUn/4="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9hwjgyVznw="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9hwjgyW6NI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hwjgyQIqw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hwjgyOcjs="
+									},
+									"font": "Arial;13;0",
+									"left": 944,
+									"top": 265,
+									"width": 201,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9hwjgyXuv0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hwjgyQIqw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hwjgyOcjs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 944,
+									"top": 275,
+									"width": 58.3818359375,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9hwjgyY4NM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hwjgyQIqw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hwjgyOcjs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 376,
+									"top": -440,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9hwjgyZ9DI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9hwjgyQIqw="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9hwjgyOcjs="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 376,
+									"top": -440,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 944,
+							"top": 240,
+							"width": 201,
+							"height": 129,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9hwjgyRavQ="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9hwjgyW6NI="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9hwjgyXuv0="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9hwjgyY4NM="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9hwjgyZ9DI="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFpe9iaRQy84Rg=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9iaRQy60yI="
+							},
+							"subViews": [
+								{
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFpe9iaRQy9kHw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9iaRQy84Rg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9iaRQy60yI="
+									},
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9iaRQy+Ynk=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9iaRQy9kHw="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 608,
+											"top": 448,
+											"height": 13
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9iaRQy/GtA=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9iaRQy9kHw="
+											},
+											"font": "Arial;13;1",
+											"left": 565,
+											"top": 847,
+											"width": 119,
+											"height": 13,
+											"text": "Vote"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9iaRQzArR8=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9iaRQy9kHw="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 608,
+											"top": 448,
+											"width": 80.9072265625,
+											"height": 13,
+											"text": "(from Model3)"
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFpe9iaRQzBe5Q=",
+											"_parent": {
+												"$ref": "AAAAAAFpe9iaRQy9kHw="
+											},
+											"visible": false,
+											"font": "Arial;13;0",
+											"left": 608,
+											"top": 448,
+											"height": 13,
+											"horizontalAlignment": 1
+										}
+									],
+									"font": "Arial;13;0",
+									"left": 560,
+									"top": 840,
+									"width": 129,
+									"height": 25,
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFpe9iaRQy+Ynk="
+									},
+									"nameLabel": {
+										"$ref": "AAAAAAFpe9iaRQy/GtA="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFpe9iaRQzArR8="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFpe9iaRQzBe5Q="
+									}
+								},
+								{
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFpe9iaRQzCXNc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9iaRQy84Rg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9iaRQy60yI="
+									},
+									"font": "Arial;13;0",
+									"left": 560,
+									"top": 865,
+									"width": 129,
+									"height": 10
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFpe9iaRQzDKBY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9iaRQy84Rg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9iaRQy60yI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 560,
+									"top": 875,
+									"width": 51.919921875,
+									"height": 10
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFpe9iaRQzEm+s=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9iaRQy84Rg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9iaRQy60yI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 304,
+									"top": 224,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFpe9iaRQzFsHE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9iaRQy84Rg="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9iaRQy60yI="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 304,
+									"top": 224,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"containerChangeable": true,
+							"left": 560,
+							"top": 840,
+							"width": 129,
+							"height": 121,
+							"showVisibility": false,
+							"nameCompartment": {
+								"$ref": "AAAAAAFpe9iaRQy9kHw="
+							},
+							"suppressOperations": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFpe9iaRQzCXNc="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFpe9iaRQzDKBY="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFpe9iaRQzEm+s="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFpe9iaRQzFsHE="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe9sc2w4FKHQ=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9sc2w4BjJE="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4GGyQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4BjJE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": 411,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4HW2I=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4BjJE="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": 396,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4Iu14=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4BjJE="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 296,
+									"top": 441,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4Jdlg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4CQ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 265,
+									"top": 459,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4KCaw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4CQ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 254,
+									"top": 451,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4L3Ak=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4CQ0A="
+									},
+									"font": "Arial;13;0",
+									"left": 280,
+									"top": 474,
+									"width": 19.5126953125,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"edgePosition": 2,
+									"text": "0..*"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4M9xE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 298,
+									"top": 380,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4NLtA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 285,
+									"top": 377,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9sc2w4OCCY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
+									},
+									"font": "Arial;13;0",
+									"left": 327,
+									"top": 387,
+									"width": 7.22998046875,
+									"height": 13,
+									"alpha": 0.7266415087845026,
+									"distance": 25.298221281347036,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"text": "1"
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9sc2w4PZBo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4CQ0A="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9sc2w4Q/LA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9sc2w4FKHQ="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9bk5gpFT4k="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9SGnAoVT4E="
+							},
+							"lineStyle": 1,
+							"points": "269:495;272:488;272:432;320:432;320:376;323:369",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe9sc2w4GGyQ="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe9sc2w4HW2I="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe9sc2w4Iu14="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe9sc2w4Jdlg="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe9sc2w4KCaw="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9sc2w4L3Ak="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe9sc2w4M9xE="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe9sc2w4NLtA="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9sc2w4OCCY="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9sc2w4PZBo="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9sc2w4Q/LA="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe9vzHA533mc=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9vzGw5zklM="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA54HKw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw5zklM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 487,
+									"top": 313,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA55M2Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw5zklM="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 487,
+									"top": 328,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA56iUI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw5zklM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 488,
+									"top": 283,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA573qE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw50AI4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 501,
+									"top": 312,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA589wc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw50AI4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 498,
+									"top": 326,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA59UPs=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw50AI4="
+									},
+									"font": "Arial;13;0",
+									"left": 502,
+									"top": 285,
+									"width": 7.22998046875,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"edgePosition": 2,
+									"text": "1"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA5+nq0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw51XIg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 474,
+									"top": 312,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA5//VU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw51XIg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 477,
+									"top": 326,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9vzHA6AwX4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw51XIg="
+									},
+									"font": "Arial;13;0",
+									"left": 461,
+									"top": 285,
+									"width": 19.5126953125,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"text": "1..*"
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9vzHA6BJng=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw50AI4="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9vzHA6CVI4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9vzHA533mc="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9vzGw51XIg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9bk5gpFT4k="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9dW+QqxoKA="
+							},
+							"lineStyle": 1,
+							"points": "527:304;449:304",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe9vzHA54HKw="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe9vzHA55M2Q="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe9vzHA56iUI="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe9vzHA573qE="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe9vzHA589wc="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9vzHA59UPs="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe9vzHA5+nq0="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe9vzHA5//VU="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9vzHA6AwX4="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9vzHA6BJng="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9vzHA6CVI4="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe96SVBHN29o=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe96SUxHJcGM="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHO1wQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHJcGM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 223,
+									"top": 177,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHPvZI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHJcGM="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 238,
+									"top": 177,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHQ+uM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHJcGM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 193,
+									"top": 178,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHRgY4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHKwIM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 221,
+									"top": 190,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHSfO4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHKwIM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 221,
+									"top": 204,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHTETw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHKwIM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 220,
+									"top": 162,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHU0qk=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHL0gw="
+									},
+									"font": "Arial;13;0",
+									"left": 152,
+									"top": 287,
+									"width": 43.72265625,
+									"height": 13,
+									"alpha": -6.110784557081414,
+									"distance": 204.0245083317198,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"text": "create"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHVQ2M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHL0gw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 236,
+									"top": 460,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe96SVBHWF9s=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHL0gw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 195,
+									"top": 467,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									}
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe96SVBHXkns=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHKwIM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe96SVBHYekM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe96SVBHN29o="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe96SUxHL0gw="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9SGnAoVT4E="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9f/cAw472Y="
+							},
+							"lineStyle": 1,
+							"points": "244:177;208:184;208:495",
+							"nameLabel": {
+								"$ref": "AAAAAAFpe96SVBHO1wQ="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe96SVBHPvZI="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe96SVBHQ+uM="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe96SVBHRgY4="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe96SVBHSfO4="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe96SVBHTETw="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe96SVBHU0qk="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe96SVBHVQ2M="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe96SVBHWF9s="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe96SVBHXkns="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe96SVBHYekM="
+							}
+						},
+						{
+							"_type": "UMLGeneralizationView",
+							"_id": "AAAAAAFpe972OxN4tj8=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe972OxN2368="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe972OxN5KFA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe972OxN2368="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 601,
+									"top": 201,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe972OxN6viU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe972OxN2368="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 586,
+									"top": 201,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe972OxN7i7k=",
+									"_parent": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe972OxN2368="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 630,
+									"top": 202,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe972OxN4tj8="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9f/cAw472Y="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9dW+QqxoKA="
+							},
+							"lineStyle": 1,
+							"points": "616:239;616:177",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe972OxN5KFA="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe972OxN6viU="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe972OxN7i7k="
+							}
+						},
+						{
+							"_type": "UMLGeneralizationView",
+							"_id": "AAAAAAFpe98dDRRLWM0=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe98dDRRJTJc="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe98dDRRMoZc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe98dDRRJTJc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 1036,
+									"top": 216,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe98dDRRNn6E=",
+									"_parent": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe98dDRRJTJc="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 1032,
+									"top": 231,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe98dDRROY6c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe98dDRRJTJc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 1043,
+									"top": 187,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe98dDRRLWM0="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9f/cAw472Y="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9hwjgyQIqw="
+							},
+							"lineStyle": 1,
+							"points": "1041:239;1040:208;914:177",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe98dDRRMoZc="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe98dDRRNn6E="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe98dDRROY6c="
+							}
+						},
+						{
+							"_type": "UMLGeneralizationView",
+							"_id": "AAAAAAFpe987XBT5mjs=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe987XBT3cus="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe987XBT6LL8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe987XBT3cus="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 817,
+									"top": 215,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe987XBT7lGY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe987XBT3cus="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 810,
+									"top": 228,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe987XBT8CT4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe987XBT3cus="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 830,
+									"top": 188,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe987XBT5mjs="
+									},
+									"edgePosition": 1
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9f/cAw472Y="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9hDuAxk9j4="
+							},
+							"lineStyle": 1,
+							"points": "824:239;824:208;762:177",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe987XBT6LL8="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe987XBT7lGY="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe987XBT8CT4="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe9+vshaTx9w=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe9+vsRaP3xM="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaUm6c=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vsRaP3xM="
+									},
+									"font": "Arial;13;0",
+									"left": 854,
+									"top": 880,
+									"width": 32.16357421875,
+									"height": 13,
+									"alpha": -0.0646113865719955,
+									"distance": 177.28226081590904,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 1,
+									"text": "vote"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaVLQ4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vsRaP3xM="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 1048,
+									"top": 919,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaW+vA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vsRaP3xM="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 1047,
+									"top": 875,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaXmw8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaQ76o="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 1059,
+									"top": 388,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaYl8Q=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaQ76o="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 1072,
+									"top": 391,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaZHNw=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaQ76o="
+									},
+									"font": "Arial;13;0",
+									"left": 1028,
+									"top": 384,
+									"width": 7.22998046875,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"edgePosition": 2,
+									"text": "1"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshaaXNY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaRqeo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 715,
+									"top": 907,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshabTKg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaRqeo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 717,
+									"top": 921,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe9+vshac+C4=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaRqeo="
+									},
+									"font": "Arial;13;0",
+									"left": 700,
+									"top": 880,
+									"width": 21.68359375,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"text": "0..1"
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9+vshadakY=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaQ76o="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"top": -8,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe9+vshaeHL8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe9+vshaTx9w="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe9+vshaRqeo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"top": -8,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9iaRQy84Rg="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9hwjgyQIqw="
+							},
+							"lineStyle": 1,
+							"points": "1044:369;1048:896;689:899",
+							"nameLabel": {
+								"$ref": "AAAAAAFpe9+vshaUm6c="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe9+vshaVLQ4="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe9+vshaW+vA="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe9+vshaXmw8="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe9+vshaYl8Q="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9+vshaZHNw="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe9+vshaaXNY="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe9+vshabTKg="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe9+vshac+C4="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9+vshadakY="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe9+vshaeHL8="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe+BI8BmulHY=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe+BI7xmqpv0="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8BmvuLE=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmqpv0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 193,
+									"top": 889,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8BmwzYM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmqpv0="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 178,
+									"top": 889,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8Bmxzc8=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmqpv0="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 223,
+									"top": 890,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8BmyI2M=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmrGFc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 532,
+									"top": 907,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8BmzaDo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmrGFc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 530,
+									"top": 921,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8Bm0ZB0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmrGFc="
+									},
+									"font": "Arial;13;0",
+									"left": 528,
+									"top": 880,
+									"width": 19.5126953125,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"edgePosition": 2,
+									"text": "0..*"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8Bm1JTA=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmsygg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 193,
+									"top": 756,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8Bm248E=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmsygg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 179,
+									"top": 759,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+BI8Bm3BCQ=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmsygg="
+									},
+									"font": "Arial;13;0",
+									"left": 217,
+									"top": 752,
+									"width": 7.22998046875,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"text": "1"
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe+BI8Bm4g/0=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmrGFc="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe+BI8Bm5DYI=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+BI8BmulHY="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+BI7xmsygg="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9SGnAoVT4E="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9iaRQy84Rg="
+							},
+							"lineStyle": 1,
+							"points": "559:899;208:896;208:737",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe+BI8BmvuLE="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe+BI8BmwzYM="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe+BI8Bmxzc8="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe+BI8BmyI2M="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe+BI8BmzaDo="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe+BI8Bm0ZB0="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe+BI8Bm1JTA="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe+BI8Bm248E="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe+BI8Bm3BCQ="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe+BI8Bm4g/0="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe+BI8Bm5DYI="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFpe+DNuBrOv3g=",
+							"_parent": {
+								"$ref": "AAAAAAFpe9ROcQmXUrc="
+							},
+							"model": {
+								"$ref": "AAAAAAFpe+DNtxrKcoA="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuBrPdBc=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrKcoA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 55,
+									"top": 469,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrQRxU=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrKcoA="
+									},
+									"visible": null,
+									"font": "Arial;13;0",
+									"left": 70,
+									"top": 469,
+									"height": 13,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrRzXg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrKcoA="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 25,
+									"top": 470,
+									"height": 13,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 1
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrSu1w=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrLbUo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 105,
+									"top": 464,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrT7ck=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrLbUo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 91,
+									"top": 461,
+									"height": 13,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 2
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrUeek=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrLbUo="
+									},
+									"font": "Arial;13;0",
+									"left": 123,
+									"top": 468,
+									"width": 19.5126953125,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"edgePosition": 2,
+									"text": "0..*"
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrVhCM=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNuBrM4Gk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 54,
+									"top": 575,
+									"height": 13,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrWoGo=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNuBrM4Gk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": 51,
+									"top": 561,
+									"height": 13,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									}
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFpe+DNuRrXi6Y=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNuBrM4Gk="
+									},
+									"font": "Arial;13;0",
+									"left": 55,
+									"top": 602,
+									"width": 7.22998046875,
+									"height": 13,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"text": "1"
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe+DNuRrYS3k=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNtxrLbUo="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -88,
+									"top": 296,
+									"width": 10,
+									"height": 10
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFpe+DNuRrZYYg=",
+									"_parent": {
+										"$ref": "AAAAAAFpe+DNuBrOv3g="
+									},
+									"model": {
+										"$ref": "AAAAAAFpe+DNuBrM4Gk="
+									},
+									"visible": false,
+									"font": "Arial;13;0",
+									"left": -88,
+									"top": 296,
+									"width": 10,
+									"height": 10
+								}
+							],
+							"font": "Arial;13;0",
+							"head": {
+								"$ref": "AAAAAAFpe9SGnAoVT4E="
+							},
+							"tail": {
+								"$ref": "AAAAAAFpe9SGnAoVT4E="
+							},
+							"points": "120:496;120:476;40:476;40:596;80:596",
+							"showVisibility": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFpe+DNuBrPdBc="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFpe+DNuRrQRxU="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFpe+DNuRrRzXg="
+							},
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFpe+DNuRrSu1w="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFpe+DNuRrT7ck="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFpe+DNuRrUeek="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFpe+DNuRrVhCM="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFpe+DNuRrWoGo="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFpe+DNuRrXi6Y="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFpe+DNuRrYS3k="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFpe+DNuRrZYYg="
+							}
+						}
+					]
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/docs/comments_domain_diagram.png b/docs/comments_domain_diagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce60e68d02cf98f98f3923606c6c02c846d74dfb
Binary files /dev/null and b/docs/comments_domain_diagram.png differ
diff --git a/docs/comments_use_case_diagram.png b/docs/comments_use_case_diagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec2a00b801f6b50fc05031c7ea7ae3025a719e51
Binary files /dev/null and b/docs/comments_use_case_diagram.png differ
diff --git a/package-lock.json b/package-lock.json
index 0fbd10ec5671fce99fe0a9f16a9f2b6c9b4442ae..a9f8e471574c7a7798aea62b83bb9bb2ecf17c01 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "arsnova-angular-frontend",
-  "version": "0.0.0",
+  "version": "1.0.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -15,60 +15,93 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.10.6",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.10.6.tgz",
-      "integrity": "sha512-Lbx6rjIGB2mMmkTCaolrQ86OfPxO/qfb4l2RvPiSyx06MEZfmFWKGeJzqCYKBRQajziX3Yc3AFzAPecoCkbIGA==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.10.6",
-        "@angular-devkit/build-optimizer": "0.10.6",
-        "@angular-devkit/build-webpack": "0.10.6",
-        "@angular-devkit/core": "7.0.6",
-        "@ngtools/webpack": "7.0.6",
-        "ajv": "6.5.3",
-        "autoprefixer": "9.1.5",
+      "version": "0.13.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.7.tgz",
+      "integrity": "sha512-GVYZyLvFXH87loz7GaSt2/JMXeAQrnOFxrx0e82eLtjMjj2ncrTj8FkbCp3WVhUivID1GoDhbgXwcBOHYlzHRg==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.13.7",
+        "@angular-devkit/build-optimizer": "0.13.7",
+        "@angular-devkit/build-webpack": "0.13.7",
+        "@angular-devkit/core": "7.3.7",
+        "@ngtools/webpack": "7.3.7",
+        "ajv": "6.9.1",
+        "autoprefixer": "9.4.6",
         "circular-dependency-plugin": "5.0.2",
         "clean-css": "4.2.1",
-        "copy-webpack-plugin": "4.5.4",
-        "file-loader": "2.0.0",
+        "copy-webpack-plugin": "4.6.0",
+        "file-loader": "3.0.1",
         "glob": "7.1.3",
-        "istanbul": "0.4.5",
         "istanbul-instrumenter-loader": "3.0.1",
         "karma-source-map-support": "1.3.0",
-        "less": "3.8.1",
+        "less": "3.9.0",
         "less-loader": "4.1.0",
-        "license-webpack-plugin": "2.0.2",
-        "loader-utils": "1.1.0",
-        "mini-css-extract-plugin": "0.4.3",
+        "license-webpack-plugin": "2.1.0",
+        "loader-utils": "1.2.3",
+        "mini-css-extract-plugin": "0.5.0",
         "minimatch": "3.0.4",
-        "node-sass": "4.9.3",
-        "opn": "5.3.0",
+        "node-sass": "4.11.0",
+        "opn": "5.4.0",
         "parse5": "4.0.0",
-        "portfinder": "1.0.17",
-        "postcss": "7.0.5",
-        "postcss-import": "12.0.0",
+        "postcss": "7.0.14",
+        "postcss-import": "12.0.1",
         "postcss-loader": "3.0.0",
-        "raw-loader": "0.5.1",
+        "raw-loader": "1.0.0",
         "rxjs": "6.3.3",
         "sass-loader": "7.1.0",
-        "semver": "5.5.1",
+        "semver": "5.6.0",
         "source-map-loader": "0.2.4",
-        "source-map-support": "0.5.9",
-        "speed-measure-webpack-plugin": "^1.2.3",
+        "source-map-support": "0.5.10",
+        "speed-measure-webpack-plugin": "1.3.1",
         "stats-webpack-plugin": "0.7.0",
-        "style-loader": "0.23.0",
+        "style-loader": "0.23.1",
         "stylus": "0.54.5",
         "stylus-loader": "3.0.2",
-        "terser-webpack-plugin": "1.1.0",
-        "tree-kill": "1.2.0",
-        "webpack": "4.19.1",
-        "webpack-dev-middleware": "3.3.0",
-        "webpack-dev-server": "3.1.8",
-        "webpack-merge": "4.1.4",
-        "webpack-sources": "1.2.0",
+        "terser-webpack-plugin": "1.2.2",
+        "tree-kill": "1.2.1",
+        "webpack": "4.29.0",
+        "webpack-dev-middleware": "3.5.1",
+        "webpack-dev-server": "3.1.14",
+        "webpack-merge": "4.2.1",
+        "webpack-sources": "1.3.0",
         "webpack-subresource-integrity": "1.1.0-rc.6"
       },
       "dependencies": {
+        "@angular-devkit/architect": {
+          "version": "0.13.7",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.7.tgz",
+          "integrity": "sha512-1N4R7cuwbbz7Z76v0Fi5nkxg6eS6FA58Y7SnTYCxI2HRJ1lqlafRjr89eoKzzbCH8ZGa7NG0wfRXtUwF/IrGmQ==",
+          "dev": true,
+          "requires": {
+            "@angular-devkit/core": "7.3.7",
+            "rxjs": "6.3.3"
+          }
+        },
+        "@angular-devkit/core": {
+          "version": "7.3.7",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.7.tgz",
+          "integrity": "sha512-RRDCqSX4wF3Nxxls+W0BzCHz2HYWFP6bUpWxmzXF8EETGlZq/b/ZsEnVV41jtsqC4PCTks4k0qUFMaKE7XCupg==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
         "glob": {
           "version": "7.1.3",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
@@ -83,6 +116,15 @@
             "path-is-absolute": "^1.0.0"
           }
         },
+        "opn": {
+          "version": "5.4.0",
+          "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz",
+          "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==",
+          "dev": true,
+          "requires": {
+            "is-wsl": "^1.1.0"
+          }
+        },
         "parse5": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
@@ -90,39 +132,47 @@
           "dev": true
         },
         "semver": {
-          "version": "5.5.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
-          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+          "version": "5.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
           "dev": true
         },
         "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
           "dev": true
         },
         "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+          "version": "0.5.10",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz",
+          "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==",
           "dev": true,
           "requires": {
             "buffer-from": "^1.0.0",
             "source-map": "^0.6.0"
+          },
+          "dependencies": {
+            "source-map": {
+              "version": "0.6.1",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+              "dev": true
+            }
           }
         }
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.10.6",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.10.6.tgz",
-      "integrity": "sha512-oedg8F++8zZTmoTt141k3nlyPtrSSsQUZI9TFbSdfR1D5WDflwOlkLyRb5WoC53HSoQnagKxY2qzd7khVah//Q==",
+      "version": "0.13.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.7.tgz",
+      "integrity": "sha512-NXW75v0lS0cGI1ri058vlaLA4D4Z+CsGYbuHYfmZeoyY0Ub9K4PPI+MZnAUT3D3dCes/dcZTmCNru4prOXR43w==",
       "dev": true,
       "requires": {
-        "loader-utils": "1.1.0",
+        "loader-utils": "1.2.3",
         "source-map": "0.5.6",
-        "typescript": "3.1.6",
-        "webpack-sources": "1.2.0"
+        "typescript": "3.2.4",
+        "webpack-sources": "1.3.0"
       },
       "dependencies": {
         "source-map": {
@@ -130,18 +180,67 @@
           "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
           "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
           "dev": true
+        },
+        "typescript": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
+          "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
+          "dev": true
         }
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.10.6",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.10.6.tgz",
-      "integrity": "sha512-tPv23KKw3iAGCTF6noD7zdHbufny4A3d+mlX1VoJDiAa6jqmuFxhY2fALymc11MRY4HVtMF5J1kQy9BLGCDbQg==",
+      "version": "0.13.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.7.tgz",
+      "integrity": "sha512-JXlgO0EzlSY90gbw3Cofr02HrZ24Wxgl6ysd6rFuTlXLqlTkjrUn0VdMeoQE33IvfXoaRzXqIH+EQtJvThjUFw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.10.6",
-        "@angular-devkit/core": "7.0.6",
+        "@angular-devkit/architect": "0.13.7",
+        "@angular-devkit/core": "7.3.7",
         "rxjs": "6.3.3"
+      },
+      "dependencies": {
+        "@angular-devkit/architect": {
+          "version": "0.13.7",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.7.tgz",
+          "integrity": "sha512-1N4R7cuwbbz7Z76v0Fi5nkxg6eS6FA58Y7SnTYCxI2HRJ1lqlafRjr89eoKzzbCH8ZGa7NG0wfRXtUwF/IrGmQ==",
+          "dev": true,
+          "requires": {
+            "@angular-devkit/core": "7.3.7",
+            "rxjs": "6.3.3"
+          }
+        },
+        "@angular-devkit/core": {
+          "version": "7.3.7",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.7.tgz",
+          "integrity": "sha512-RRDCqSX4wF3Nxxls+W0BzCHz2HYWFP6bUpWxmzXF8EETGlZq/b/ZsEnVV41jtsqC4PCTks4k0qUFMaKE7XCupg==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
       }
     },
     "@angular-devkit/core": {
@@ -243,13 +342,13 @@
       }
     },
     "@angular/compiler-cli": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.0.tgz",
-      "integrity": "sha512-Q42B3YmjMNYWTxTWfyDDFa6HSVqwY3rZO5Kp3Q/NKhQ6w/WddduxjARf/OCbtp0bVX3wZNObS6nO4H65rNCtsw==",
+      "version": "7.2.11",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.11.tgz",
+      "integrity": "sha512-JlyJcRdD0oltKbFKGA83g4+vitF4e7ReqAHYTGbNTDIicWhCXYwwGAqj0HYAUHsv9KnP9F5ojZOJ7FRIN7mPgw==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
-        "chokidar": "^1.4.2",
+        "chokidar": "^2.1.1",
         "convert-source-map": "^1.5.1",
         "dependency-graph": "^0.7.2",
         "magic-string": "^0.25.0",
@@ -261,127 +360,752 @@
         "yargs": "9.0.1"
       },
       "dependencies": {
-        "anymatch": {
-          "version": "1.3.2",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
-          "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "2.1.5",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz",
+          "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==",
           "dev": true,
           "requires": {
-            "micromatch": "^2.1.5",
-            "normalize-path": "^2.0.0"
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "fsevents": {
+          "version": "1.2.7",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
+          "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "nan": "^2.9.2",
+            "node-pre-gyp": "^0.10.0"
+          },
+          "dependencies": {
+            "abbrev": {
+              "version": "1.1.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "ansi-regex": {
+              "version": "2.1.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "are-we-there-yet": {
+              "version": "1.1.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "delegates": "^1.0.0",
+                "readable-stream": "^2.0.6"
+              }
+            },
+            "balanced-match": {
+              "version": "1.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "brace-expansion": {
+              "version": "1.1.11",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+              }
+            },
+            "chownr": {
+              "version": "1.1.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "code-point-at": {
+              "version": "1.1.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "concat-map": {
+              "version": "0.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "console-control-strings": {
+              "version": "1.1.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "core-util-is": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "debug": {
+              "version": "2.6.9",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "ms": "2.0.0"
+              }
+            },
+            "deep-extend": {
+              "version": "0.6.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "delegates": {
+              "version": "1.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "detect-libc": {
+              "version": "1.0.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "fs-minipass": {
+              "version": "1.2.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "minipass": "^2.2.1"
+              }
+            },
+            "fs.realpath": {
+              "version": "1.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "gauge": {
+              "version": "2.7.4",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "aproba": "^1.0.3",
+                "console-control-strings": "^1.0.0",
+                "has-unicode": "^2.0.0",
+                "object-assign": "^4.1.0",
+                "signal-exit": "^3.0.0",
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1",
+                "wide-align": "^1.1.0"
+              }
+            },
+            "glob": {
+              "version": "7.1.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+              }
+            },
+            "has-unicode": {
+              "version": "2.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "iconv-lite": {
+              "version": "0.4.24",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "safer-buffer": ">= 2.1.2 < 3"
+              }
+            },
+            "ignore-walk": {
+              "version": "3.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "minimatch": "^3.0.4"
+              }
+            },
+            "inflight": {
+              "version": "1.0.6",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+              }
+            },
+            "inherits": {
+              "version": "2.0.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "ini": {
+              "version": "1.3.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "is-fullwidth-code-point": {
+              "version": "1.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "number-is-nan": "^1.0.0"
+              }
+            },
+            "isarray": {
+              "version": "1.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "minimatch": {
+              "version": "3.0.4",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "brace-expansion": "^1.1.7"
+              }
+            },
+            "minimist": {
+              "version": "0.0.8",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "minipass": {
+              "version": "2.3.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "safe-buffer": "^5.1.2",
+                "yallist": "^3.0.0"
+              }
+            },
+            "minizlib": {
+              "version": "1.2.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "minipass": "^2.2.1"
+              }
+            },
+            "mkdirp": {
+              "version": "0.5.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "minimist": "0.0.8"
+              }
+            },
+            "ms": {
+              "version": "2.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "needle": {
+              "version": "2.2.4",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "debug": "^2.1.2",
+                "iconv-lite": "^0.4.4",
+                "sax": "^1.2.4"
+              }
+            },
+            "node-pre-gyp": {
+              "version": "0.10.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "detect-libc": "^1.0.2",
+                "mkdirp": "^0.5.1",
+                "needle": "^2.2.1",
+                "nopt": "^4.0.1",
+                "npm-packlist": "^1.1.6",
+                "npmlog": "^4.0.2",
+                "rc": "^1.2.7",
+                "rimraf": "^2.6.1",
+                "semver": "^5.3.0",
+                "tar": "^4"
+              }
+            },
+            "nopt": {
+              "version": "4.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "abbrev": "1",
+                "osenv": "^0.1.4"
+              }
+            },
+            "npm-bundled": {
+              "version": "1.0.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "npm-packlist": {
+              "version": "1.2.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "ignore-walk": "^3.0.1",
+                "npm-bundled": "^1.0.1"
+              }
+            },
+            "npmlog": {
+              "version": "4.1.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "are-we-there-yet": "~1.1.2",
+                "console-control-strings": "~1.1.0",
+                "gauge": "~2.7.3",
+                "set-blocking": "~2.0.0"
+              }
+            },
+            "number-is-nan": {
+              "version": "1.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "object-assign": {
+              "version": "4.1.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "once": {
+              "version": "1.4.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "wrappy": "1"
+              }
+            },
+            "os-homedir": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "os-tmpdir": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "osenv": {
+              "version": "0.1.5",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "os-homedir": "^1.0.0",
+                "os-tmpdir": "^1.0.0"
+              }
+            },
+            "path-is-absolute": {
+              "version": "1.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "process-nextick-args": {
+              "version": "2.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "rc": {
+              "version": "1.2.8",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "deep-extend": "^0.6.0",
+                "ini": "~1.3.0",
+                "minimist": "^1.2.0",
+                "strip-json-comments": "~2.0.1"
+              },
+              "dependencies": {
+                "minimist": {
+                  "version": "1.2.0",
+                  "bundled": true,
+                  "dev": true,
+                  "optional": true
+                }
+              }
+            },
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "rimraf": {
+              "version": "2.6.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "glob": "^7.1.3"
+              }
+            },
+            "safe-buffer": {
+              "version": "5.1.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "safer-buffer": {
+              "version": "2.1.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "sax": {
+              "version": "1.2.4",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "semver": {
+              "version": "5.6.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "set-blocking": {
+              "version": "2.0.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "signal-exit": {
+              "version": "3.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "string-width": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            },
+            "strip-ansi": {
+              "version": "3.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "ansi-regex": "^2.0.0"
+              }
+            },
+            "strip-json-comments": {
+              "version": "2.0.1",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "tar": {
+              "version": "4.4.8",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "chownr": "^1.1.1",
+                "fs-minipass": "^1.2.5",
+                "minipass": "^2.3.4",
+                "minizlib": "^1.1.1",
+                "mkdirp": "^0.5.0",
+                "safe-buffer": "^5.1.2",
+                "yallist": "^3.0.2"
+              }
+            },
+            "util-deprecate": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "wide-align": {
+              "version": "1.1.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "string-width": "^1.0.2 || 2"
+              }
+            },
+            "wrappy": {
+              "version": "1.0.2",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            },
+            "yallist": {
+              "version": "3.0.3",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            }
           }
         },
-        "arr-diff": {
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "load-json-file": {
           "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
           "dev": true,
           "requires": {
-            "arr-flatten": "^1.0.1"
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "strip-bom": "^3.0.0"
           }
         },
-        "braces": {
-          "version": "1.8.5",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
           "dev": true,
           "requires": {
-            "expand-range": "^1.8.1",
-            "preserve": "^0.2.0",
-            "repeat-element": "^1.1.2"
+            "execa": "^0.7.0",
+            "lcid": "^1.0.0",
+            "mem": "^1.1.0"
           }
         },
-        "chokidar": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
-          "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
           "dev": true,
           "requires": {
-            "anymatch": "^1.3.0",
-            "async-each": "^1.0.0",
-            "fsevents": "^1.0.0",
-            "glob-parent": "^2.0.0",
-            "inherits": "^2.0.1",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^2.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.0.0"
+            "pify": "^2.0.0"
           }
         },
-        "expand-brackets": {
-          "version": "0.1.5",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
-          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
           "dev": true,
           "requires": {
-            "is-posix-bracket": "^0.1.0"
+            "load-json-file": "^2.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^2.0.0"
           }
         },
-        "extglob": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
-          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
           "dev": true,
           "requires": {
-            "is-extglob": "^1.0.0"
+            "find-up": "^2.0.0",
+            "read-pkg": "^2.0.0"
           }
         },
-        "glob-parent": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+        "readdirp": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+          "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
           "dev": true,
           "requires": {
-            "is-glob": "^2.0.0"
+            "graceful-fs": "^4.1.11",
+            "micromatch": "^3.1.10",
+            "readable-stream": "^2.0.2"
           }
         },
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
         },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
           "dev": true,
           "requires": {
-            "is-extglob": "^1.0.0"
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
           }
         },
-        "micromatch": {
-          "version": "2.3.11",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
-          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^2.0.0",
-            "array-unique": "^0.2.1",
-            "braces": "^1.8.2",
-            "expand-brackets": "^0.1.4",
-            "extglob": "^0.3.1",
-            "filename-regex": "^2.0.0",
-            "is-extglob": "^1.0.0",
-            "is-glob": "^2.0.1",
-            "kind-of": "^3.0.2",
-            "normalize-path": "^2.0.1",
-            "object.omit": "^2.0.0",
-            "parse-glob": "^3.0.4",
-            "regex-cache": "^0.4.2"
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
           }
         },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
           "dev": true
         },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+        "upath": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+          "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
+          "dev": true
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
           "dev": true
+        },
+        "yargs": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
+          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^2.0.0",
+            "read-pkg-up": "^2.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^7.0.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
         }
       }
     },
@@ -636,19 +1360,52 @@
         }
       }
     },
-    "@ngtools/webpack": {
-      "version": "7.0.6",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.0.6.tgz",
-      "integrity": "sha512-lOHpVqr30QXPuaOxSRasHv6ybDj4a1jVwSOk+W4aGqVlLi0bsngt9HrvgR+FALEoG9P520bytz16wma81Y2Aeg==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.0.6",
-        "enhanced-resolve": "4.1.0",
-        "rxjs": "6.3.3",
-        "tree-kill": "1.2.0",
-        "webpack-sources": "1.2.0"
-      }
-    },
+    "@ngtools/webpack": {
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.7.tgz",
+      "integrity": "sha512-u14/poGhv0aSQ3vwgX6DpIFN+TWviqOv4+uM4/AUnLGwvNS+p02BMIr3m+biX9dsLH+7EfATEuWOLkSkhaCjnA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.7",
+        "enhanced-resolve": "4.1.0",
+        "rxjs": "6.3.3",
+        "tree-kill": "1.2.1",
+        "webpack-sources": "1.3.0"
+      },
+      "dependencies": {
+        "@angular-devkit/core": {
+          "version": "7.3.7",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.7.tgz",
+          "integrity": "sha512-RRDCqSX4wF3Nxxls+W0BzCHz2HYWFP6bUpWxmzXF8EETGlZq/b/ZsEnVV41jtsqC4PCTks4k0qUFMaKE7XCupg==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
+      }
+    },
     "@ngx-translate/core": {
       "version": "10.0.2",
       "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz",
@@ -764,6 +1521,12 @@
       "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==",
       "dev": true
     },
+    "@types/source-list-map": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
+      "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
+      "dev": true
+    },
     "@types/strip-bom": {
       "version": "3.0.0",
       "resolved": "http://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -776,180 +1539,194 @@
       "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
       "dev": true
     },
+    "@types/webpack-sources": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz",
+      "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*",
+        "@types/source-list-map": "*",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
     "@webassemblyjs/ast": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz",
-      "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
+      "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/helper-module-context": "1.7.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
-        "@webassemblyjs/wast-parser": "1.7.6",
-        "mamacro": "^0.0.3"
+        "@webassemblyjs/helper-module-context": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/wast-parser": "1.7.11"
       }
     },
     "@webassemblyjs/floating-point-hex-parser": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz",
-      "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
+      "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
       "dev": true
     },
     "@webassemblyjs/helper-api-error": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz",
-      "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
+      "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
       "dev": true
     },
     "@webassemblyjs/helper-buffer": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz",
-      "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
+      "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
       "dev": true
     },
     "@webassemblyjs/helper-code-frame": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz",
-      "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
+      "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/wast-printer": "1.7.6"
+        "@webassemblyjs/wast-printer": "1.7.11"
       }
     },
     "@webassemblyjs/helper-fsm": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz",
-      "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
+      "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
       "dev": true
     },
     "@webassemblyjs/helper-module-context": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz",
-      "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==",
-      "dev": true,
-      "requires": {
-        "mamacro": "^0.0.3"
-      }
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
+      "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
+      "dev": true
     },
     "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz",
-      "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
+      "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
       "dev": true
     },
     "@webassemblyjs/helper-wasm-section": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz",
-      "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
+      "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-buffer": "1.7.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
-        "@webassemblyjs/wasm-gen": "1.7.6"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11"
       }
     },
     "@webassemblyjs/ieee754": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz",
-      "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
+      "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
       "dev": true,
       "requires": {
         "@xtuc/ieee754": "^1.2.0"
       }
     },
     "@webassemblyjs/leb128": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz",
-      "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
+      "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
       "dev": true,
       "requires": {
         "@xtuc/long": "4.2.1"
       }
     },
     "@webassemblyjs/utf8": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz",
-      "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
+      "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
       "dev": true
     },
     "@webassemblyjs/wasm-edit": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz",
-      "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
+      "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-buffer": "1.7.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
-        "@webassemblyjs/helper-wasm-section": "1.7.6",
-        "@webassemblyjs/wasm-gen": "1.7.6",
-        "@webassemblyjs/wasm-opt": "1.7.6",
-        "@webassemblyjs/wasm-parser": "1.7.6",
-        "@webassemblyjs/wast-printer": "1.7.6"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/helper-wasm-section": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11",
+        "@webassemblyjs/wasm-opt": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11",
+        "@webassemblyjs/wast-printer": "1.7.11"
       }
     },
     "@webassemblyjs/wasm-gen": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz",
-      "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
+      "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
-        "@webassemblyjs/ieee754": "1.7.6",
-        "@webassemblyjs/leb128": "1.7.6",
-        "@webassemblyjs/utf8": "1.7.6"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/ieee754": "1.7.11",
+        "@webassemblyjs/leb128": "1.7.11",
+        "@webassemblyjs/utf8": "1.7.11"
       }
     },
     "@webassemblyjs/wasm-opt": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz",
-      "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
+      "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-buffer": "1.7.6",
-        "@webassemblyjs/wasm-gen": "1.7.6",
-        "@webassemblyjs/wasm-parser": "1.7.6"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11"
       }
     },
     "@webassemblyjs/wasm-parser": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz",
-      "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
+      "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-api-error": "1.7.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
-        "@webassemblyjs/ieee754": "1.7.6",
-        "@webassemblyjs/leb128": "1.7.6",
-        "@webassemblyjs/utf8": "1.7.6"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-api-error": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/ieee754": "1.7.11",
+        "@webassemblyjs/leb128": "1.7.11",
+        "@webassemblyjs/utf8": "1.7.11"
       }
     },
     "@webassemblyjs/wast-parser": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz",
-      "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
+      "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/floating-point-hex-parser": "1.7.6",
-        "@webassemblyjs/helper-api-error": "1.7.6",
-        "@webassemblyjs/helper-code-frame": "1.7.6",
-        "@webassemblyjs/helper-fsm": "1.7.6",
-        "@xtuc/long": "4.2.1",
-        "mamacro": "^0.0.3"
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/floating-point-hex-parser": "1.7.11",
+        "@webassemblyjs/helper-api-error": "1.7.11",
+        "@webassemblyjs/helper-code-frame": "1.7.11",
+        "@webassemblyjs/helper-fsm": "1.7.11",
+        "@xtuc/long": "4.2.1"
       }
     },
     "@webassemblyjs/wast-printer": {
-      "version": "1.7.6",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz",
-      "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==",
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
+      "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/wast-parser": "1.7.6",
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/wast-parser": "1.7.11",
         "@xtuc/long": "4.2.1"
       }
     },
@@ -966,10 +1743,11 @@
       "dev": true
     },
     "abbrev": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
-      "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
-      "dev": true
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true,
+      "optional": true
     },
     "accepts": {
       "version": "1.3.5",
@@ -982,19 +1760,16 @@
       }
     },
     "acorn": {
-      "version": "5.7.3",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
-      "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
+      "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==",
       "dev": true
     },
     "acorn-dynamic-import": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
-      "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
-      "dev": true,
-      "requires": {
-        "acorn": "^5.0.0"
-      }
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
+      "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
+      "dev": true
     },
     "addressparser": {
       "version": "1.0.1",
@@ -1046,15 +1821,15 @@
       }
     },
     "ajv-errors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz",
-      "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
       "dev": true
     },
     "ajv-keywords": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
-      "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
+      "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
       "dev": true
     },
     "align-text": {
@@ -1062,6 +1837,7 @@
       "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
       "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.0.2",
         "longest": "^1.0.1",
@@ -1123,9 +1899,9 @@
       "integrity": "sha1-cvA81TK39AAy6x7PufhFc4S+lW4="
     },
     "ansi-colors": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.1.tgz",
-      "integrity": "sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ==",
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+      "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
       "dev": true
     },
     "ansi-escapes": {
@@ -1149,7 +1925,7 @@
     "ansi-styles": {
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
       "dev": true,
       "requires": {
         "color-convert": "^1.9.0"
@@ -1166,20 +1942,11 @@
       }
     },
     "app-root-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz",
-      "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
+      "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
       "dev": true
     },
-    "append-transform": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
-      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
-      "dev": true,
-      "requires": {
-        "default-require-extensions": "^2.0.0"
-      }
-    },
     "aproba": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
@@ -1191,6 +1958,7 @@
       "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
       "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
       "dev": true,
+      "optional": true,
       "requires": {
         "delegates": "^1.0.0",
         "readable-stream": "^2.0.6"
@@ -1199,7 +1967,7 @@
     "argparse": {
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
       "dev": true,
       "requires": {
         "sprintf-js": "~1.0.2"
@@ -1227,12 +1995,13 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
       "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "array-flatten": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
-      "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
       "dev": true
     },
     "array-slice": {
@@ -1311,7 +2080,8 @@
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
       "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "assign-symbols": {
       "version": "1.0.0",
@@ -1375,30 +2145,32 @@
       "dev": true
     },
     "autoprefixer": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.1.5.tgz",
-      "integrity": "sha512-kk4Zb6RUc58ld7gdosERHMF3DzIYJc2fp5sX46qEsGXQQy5bXsu8qyLjoxuY1NuQ/cJuCYnx99BfjwnRggrYIw==",
+      "version": "9.4.6",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
+      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.1.0",
-        "caniuse-lite": "^1.0.30000884",
+        "browserslist": "^4.4.1",
+        "caniuse-lite": "^1.0.30000929",
         "normalize-range": "^0.1.2",
         "num2fraction": "^1.2.2",
-        "postcss": "^7.0.2",
-        "postcss-value-parser": "^3.2.3"
+        "postcss": "^7.0.13",
+        "postcss-value-parser": "^3.3.1"
       }
     },
     "aws-sign2": {
       "version": "0.6.0",
       "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
       "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "aws4": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
       "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "axios": {
       "version": "0.15.3",
@@ -1666,9 +2438,9 @@
       }
     },
     "big.js": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
-      "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
       "dev": true
     },
     "binary-extensions": {
@@ -1824,6 +2596,7 @@
       "resolved": "http://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
       "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
       "dev": true,
+      "optional": true,
       "requires": {
         "hoek": "2.x.x"
       }
@@ -1831,7 +2604,7 @@
     "brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
       "dev": true,
       "requires": {
         "balanced-match": "^1.0.0",
@@ -1959,14 +2732,14 @@
       }
     },
     "browserslist": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz",
-      "integrity": "sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==",
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz",
+      "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30000899",
-        "electron-to-chromium": "^1.3.82",
-        "node-releases": "^1.0.1"
+        "caniuse-lite": "^1.0.30000955",
+        "electron-to-chromium": "^1.3.122",
+        "node-releases": "^1.1.13"
       }
     },
     "buffer": {
@@ -2018,7 +2791,8 @@
       "version": "0.0.2",
       "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
       "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "buffer-xor": {
       "version": "1.0.3",
@@ -2085,14 +2859,6 @@
         "ssri": "^5.2.4",
         "unique-filename": "^1.1.0",
         "y18n": "^4.0.0"
-      },
-      "dependencies": {
-        "y18n": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-          "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
-          "dev": true
-        }
       }
     },
     "cache-base": {
@@ -2127,10 +2893,11 @@
       "dev": true
     },
     "camelcase": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-      "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-      "dev": true
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+      "dev": true,
+      "optional": true
     },
     "camelcase-keys": {
       "version": "2.1.0",
@@ -2141,21 +2908,12 @@
       "requires": {
         "camelcase": "^2.0.0",
         "map-obj": "^1.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-          "dev": true,
-          "optional": true
-        }
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30000910",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000910.tgz",
-      "integrity": "sha512-u/nxtHGAzCGZzIxt3dA/tpSPOcirBZFWKwz1EPz4aaupnBI2XR0Rbr74g0zc6Hzy41OEM4uMoZ38k56TpYAWjQ==",
+      "version": "1.0.30000957",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz",
+      "integrity": "sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==",
       "dev": true
     },
     "canonical-path": {
@@ -2446,15 +3204,6 @@
         "shallow-clone": "^1.0.0"
       },
       "dependencies": {
-        "for-own": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
-          "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
-          "dev": true,
-          "requires": {
-            "for-in": "^1.0.1"
-          }
-        },
         "kind-of": {
           "version": "6.0.2",
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
@@ -2476,9 +3225,9 @@
       "dev": true
     },
     "codelyzer": {
-      "version": "4.4.4",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.4.4.tgz",
-      "integrity": "sha512-JgFMudx0n50IuE/ydAfnkksCwQkWSVWgYvhDPHZgDUbmsiYC22VuEXKu5l8Hhx9UJsLgjWDLjTAFGj2WaW5DUA==",
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
+      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
       "dev": true,
       "requires": {
         "app-root-path": "^2.1.0",
@@ -2490,9 +3239,9 @@
       },
       "dependencies": {
         "sprintf-js": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
-          "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=",
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+          "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
           "dev": true
         }
       }
@@ -2557,12 +3306,6 @@
       "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
       "dev": true
     },
-    "compare-versions": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz",
-      "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==",
-      "dev": true
-    },
     "component-bind": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
@@ -2582,33 +3325,33 @@
       "dev": true
     },
     "compressible": {
-      "version": "2.0.15",
-      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz",
-      "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==",
+      "version": "2.0.16",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz",
+      "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==",
       "dev": true,
       "requires": {
-        "mime-db": ">= 1.36.0 < 2"
+        "mime-db": ">= 1.38.0 < 2"
       },
       "dependencies": {
         "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
+          "version": "1.38.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
+          "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
           "dev": true
         }
       }
     },
     "compression": {
-      "version": "1.7.3",
-      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz",
-      "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==",
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+      "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
       "dev": true,
       "requires": {
         "accepts": "~1.3.5",
         "bytes": "3.0.0",
-        "compressible": "~2.0.14",
+        "compressible": "~2.0.16",
         "debug": "2.6.9",
-        "on-headers": "~1.0.1",
+        "on-headers": "~1.0.2",
         "safe-buffer": "5.1.2",
         "vary": "~1.1.2"
       },
@@ -2675,9 +3418,9 @@
       }
     },
     "connect-history-api-fallback": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
-      "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
       "dev": true
     },
     "console-browserify": {
@@ -2693,7 +3436,8 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
       "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "constants-browserify": {
       "version": "1.0.0",
@@ -2755,9 +3499,9 @@
       "dev": true
     },
     "copy-webpack-plugin": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz",
-      "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==",
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
+      "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
       "dev": true,
       "requires": {
         "cacache": "^10.0.4",
@@ -2858,6 +3602,7 @@
       "resolved": "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
       "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
       "dev": true,
+      "optional": true,
       "requires": {
         "boom": "2.x.x"
       }
@@ -2900,9 +3645,9 @@
       }
     },
     "css-selector-tokenizer": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
-      "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
       "dev": true,
       "requires": {
         "cssesc": "^0.1.0",
@@ -2936,6 +3681,7 @@
       "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
       "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
       "dev": true,
+      "optional": true,
       "requires": {
         "array-find-index": "^1.0.1"
       }
@@ -3019,7 +3765,8 @@
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "default-gateway": {
       "version": "2.7.2",
@@ -3061,23 +3808,6 @@
         }
       }
     },
-    "default-require-extensions": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
-      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
-      "dev": true,
-      "requires": {
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        }
-      }
-    },
     "define-property": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
@@ -3186,12 +3916,6 @@
               "dev": true
             }
           }
-        },
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
         }
       }
     },
@@ -3211,7 +3935,8 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
       "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "depd": {
       "version": "1.1.2",
@@ -3280,30 +4005,12 @@
       }
     },
     "dir-glob": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
-      "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
       "dev": true,
       "requires": {
-        "arrify": "^1.0.1",
         "path-type": "^3.0.0"
-      },
-      "dependencies": {
-        "path-type": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
-          "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
-          "dev": true,
-          "requires": {
-            "pify": "^3.0.0"
-          }
-        },
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
       }
     },
     "dns-equal": {
@@ -3333,7 +4040,7 @@
     },
     "doctrine": {
       "version": "0.7.2",
-      "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
       "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
       "requires": {
         "esutils": "^1.1.6",
@@ -3412,9 +4119,9 @@
       "optional": true
     },
     "duplexify": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
-      "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
       "dev": true,
       "requires": {
         "end-of-stream": "^1.0.0",
@@ -3440,9 +4147,9 @@
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.3.84",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz",
-      "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==",
+      "version": "1.3.122",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.122.tgz",
+      "integrity": "sha512-3RKoIyCN4DhP2dsmleuFvpJAIDOseWH88wFYBzb22CSwoFDSWRc4UAMfrtc9h8nBdJjTNIN3rogChgOy6eFInw==",
       "dev": true
     },
     "elliptic": {
@@ -3604,13 +4311,15 @@
       "version": "4.2.4",
       "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
       "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "es6-promisify": {
       "version": "5.0.0",
       "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
       "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
       "dev": true,
+      "optional": true,
       "requires": {
         "es6-promise": "^4.0.3"
       }
@@ -3658,9 +4367,9 @@
       }
     },
     "eslint-scope": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
-      "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
       "dev": true,
       "requires": {
         "esrecurse": "^4.1.0",
@@ -3668,9 +4377,9 @@
       }
     },
     "esprima": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
-      "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
       "dev": true
     },
     "esrecurse": {
@@ -3707,18 +4416,18 @@
       "dev": true
     },
     "events": {
-      "version": "1.1.1",
-      "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz",
-      "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+      "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
       "dev": true
     },
     "eventsource": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
-      "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+      "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
       "dev": true,
       "requires": {
-        "original": ">=0.0.5"
+        "original": "^1.0.0"
       }
     },
     "evp_bytestokey": {
@@ -3844,48 +4553,6 @@
         }
       }
     },
-    "expand-range": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
-      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
-      "dev": true,
-      "requires": {
-        "fill-range": "^2.1.0"
-      },
-      "dependencies": {
-        "fill-range": {
-          "version": "2.2.4",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
-          "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
-          "dev": true,
-          "requires": {
-            "is-number": "^2.1.0",
-            "isobject": "^2.0.0",
-            "randomatic": "^3.0.0",
-            "repeat-element": "^1.1.2",
-            "repeat-string": "^1.5.2"
-          }
-        },
-        "is-number": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
-          "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "isobject": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-          "dev": true,
-          "requires": {
-            "isarray": "1.0.0"
-          }
-        }
-      }
-    },
     "express": {
       "version": "4.16.4",
       "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
@@ -4131,12 +4798,13 @@
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "fastparse": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
-      "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
       "dev": true
     },
     "faye-websocket": {
@@ -4164,9 +4832,9 @@
       }
     },
     "file-loader": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
-      "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz",
+      "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.0.2",
@@ -4180,12 +4848,6 @@
       "dev": true,
       "optional": true
     },
-    "filename-regex": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
-      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-      "dev": true
-    },
     "fileset": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
@@ -4264,13 +4926,39 @@
       }
     },
     "flush-write-stream": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
-      "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
       "dev": true,
       "requires": {
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.4"
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.6",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+          "dev": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
       }
     },
     "follow-redirects": {
@@ -4300,9 +4988,9 @@
       "dev": true
     },
     "for-own": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
-      "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
       "dev": true,
       "requires": {
         "for-in": "^1.0.1"
@@ -4314,17 +5002,6 @@
       "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
       "dev": true
     },
-    "form-data": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
-      "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
-      "dev": true,
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.5",
-        "mime-types": "^2.1.12"
-      }
-    },
     "forwarded": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -4409,7 +5086,8 @@
         "ansi-regex": {
           "version": "2.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aproba": {
           "version": "1.2.0",
@@ -4430,12 +5108,14 @@
         "balanced-match": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -4450,17 +5130,20 @@
         "code-point-at": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "concat-map": {
           "version": "0.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "console-control-strings": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "core-util-is": {
           "version": "1.0.2",
@@ -4577,7 +5260,8 @@
         "inherits": {
           "version": "2.0.3",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "ini": {
           "version": "1.3.5",
@@ -4589,6 +5273,7 @@
           "version": "1.0.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "number-is-nan": "^1.0.0"
           }
@@ -4603,6 +5288,7 @@
           "version": "3.0.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
@@ -4610,12 +5296,14 @@
         "minimist": {
           "version": "0.0.8",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "minipass": {
           "version": "2.2.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "safe-buffer": "^5.1.1",
             "yallist": "^3.0.0"
@@ -4634,6 +5322,7 @@
           "version": "0.5.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "minimist": "0.0.8"
           }
@@ -4714,7 +5403,8 @@
         "number-is-nan": {
           "version": "1.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "object-assign": {
           "version": "4.1.1",
@@ -4726,6 +5416,7 @@
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "wrappy": "1"
           }
@@ -4811,7 +5502,8 @@
         "safe-buffer": {
           "version": "5.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "safer-buffer": {
           "version": "2.1.2",
@@ -4847,6 +5539,7 @@
           "version": "1.0.2",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
@@ -4866,6 +5559,7 @@
           "version": "3.0.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "ansi-regex": "^2.0.0"
           }
@@ -4909,12 +5603,14 @@
         "wrappy": {
           "version": "1.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "yallist": {
           "version": "3.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -4923,6 +5619,7 @@
       "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
       "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
       "dev": true,
+      "optional": true,
       "requires": {
         "graceful-fs": "^4.1.2",
         "inherits": "~2.0.0",
@@ -4975,6 +5672,7 @@
       "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
       "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
       "dev": true,
+      "optional": true,
       "requires": {
         "aproba": "^1.0.3",
         "console-control-strings": "^1.0.0",
@@ -5023,7 +5721,8 @@
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
       "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "get-stream": {
       "version": "3.0.0",
@@ -5092,42 +5791,6 @@
         "path-is-absolute": "^1.0.0"
       }
     },
-    "glob-base": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
-      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-      "dev": true,
-      "requires": {
-        "glob-parent": "^2.0.0",
-        "is-glob": "^2.0.0"
-      },
-      "dependencies": {
-        "glob-parent": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^2.0.0"
-          }
-        },
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        }
-      }
-    },
     "glob-parent": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
@@ -5167,14 +5830,6 @@
         "ignore": "^3.3.5",
         "pify": "^3.0.0",
         "slash": "^1.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
       }
     },
     "globule": {
@@ -5187,15 +5842,6 @@
         "glob": "~7.1.1",
         "lodash": "~4.17.10",
         "minimatch": "~3.0.2"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true,
-          "optional": true
-        }
       }
     },
     "good-listener": {
@@ -5219,9 +5865,9 @@
       "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
     },
     "handle-thing": {
-      "version": "1.2.5",
-      "resolved": "http://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
-      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
+      "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
       "dev": true
     },
     "handlebars": {
@@ -5306,34 +5952,6 @@
         }
       }
     },
-    "har-schema": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
-      "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
-      "dev": true
-    },
-    "har-validator": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
-      "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
-      "dev": true,
-      "requires": {
-        "ajv": "^4.9.1",
-        "har-schema": "^1.0.5"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
-          "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
-          "dev": true,
-          "requires": {
-            "co": "^4.6.0",
-            "json-stable-stringify": "^1.0.1"
-          }
-        }
-      }
-    },
     "has-ansi": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
@@ -5376,7 +5994,8 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
       "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "has-value": {
       "version": "1.0.0",
@@ -5449,9 +6068,9 @@
       }
     },
     "hash.js": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
-      "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
       "dev": true,
       "requires": {
         "inherits": "^2.0.3",
@@ -5463,6 +6082,7 @@
       "resolved": "http://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
       "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
       "dev": true,
+      "optional": true,
       "requires": {
         "boom": "2.x.x",
         "cryptiles": "2.x.x",
@@ -5496,7 +6116,8 @@
       "version": "2.16.3",
       "resolved": "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
       "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "homedir-polyfill": {
       "version": "1.0.1",
@@ -5571,6 +6192,7 @@
       "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
       "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "agent-base": "4",
         "debug": "3.1.0"
@@ -5581,6 +6203,7 @@
           "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
           "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "es6-promisify": "^5.0.0"
           }
@@ -5590,6 +6213,7 @@
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
           "dev": true,
+          "optional": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -5613,6 +6237,7 @@
       "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
       "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
       "dev": true,
+      "optional": true,
       "requires": {
         "assert-plus": "^0.2.0",
         "jsprim": "^1.2.2",
@@ -5624,6 +6249,7 @@
       "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz",
       "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=",
       "dev": true,
+      "optional": true,
       "requires": {
         "httpreq": ">=0.4.22",
         "underscore": "~1.7.0"
@@ -5633,7 +6259,8 @@
       "version": "0.4.24",
       "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz",
       "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "https-browserify": {
       "version": "1.0.0",
@@ -5659,9 +6286,9 @@
       "dev": true
     },
     "ieee754": {
-      "version": "1.1.12",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
-      "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
       "dev": true
     },
     "iferr": {
@@ -5731,9 +6358,9 @@
           }
         },
         "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
@@ -5749,9 +6376,9 @@
           }
         },
         "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
           "dev": true
         },
         "pkg-dir": {
@@ -5894,9 +6521,9 @@
       }
     },
     "interpret": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
-      "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+      "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
       "dev": true
     },
     "invariant": {
@@ -6010,21 +6637,6 @@
       "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-1.1.0.tgz",
       "integrity": "sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE="
     },
-    "is-dotfile": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
-      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-      "dev": true
-    },
-    "is-equal-shallow": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
-      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-      "dev": true,
-      "requires": {
-        "is-primitive": "^2.0.0"
-      }
-    },
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -6135,18 +6747,6 @@
         }
       }
     },
-    "is-posix-bracket": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
-      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-      "dev": true
-    },
-    "is-primitive": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
-      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-      "dev": true
-    },
     "is-promise": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -6223,70 +6823,50 @@
       "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
       "dev": true
     },
-    "istanbul": {
-      "version": "0.4.5",
-      "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
-      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
+    "istanbul-api": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz",
+      "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==",
       "dev": true,
       "requires": {
-        "abbrev": "1.0.x",
-        "async": "1.x",
-        "escodegen": "1.8.x",
-        "esprima": "2.7.x",
-        "glob": "^5.0.15",
-        "handlebars": "^4.0.1",
-        "js-yaml": "3.x",
-        "mkdirp": "0.5.x",
-        "nopt": "3.x",
-        "once": "1.x",
-        "resolve": "1.1.x",
-        "supports-color": "^3.1.0",
-        "which": "^1.1.1",
-        "wordwrap": "^1.0.0"
+        "async": "^2.1.4",
+        "fileset": "^2.0.2",
+        "istanbul-lib-coverage": "^1.2.1",
+        "istanbul-lib-hook": "^1.2.2",
+        "istanbul-lib-instrument": "^1.10.2",
+        "istanbul-lib-report": "^1.1.5",
+        "istanbul-lib-source-maps": "^1.2.6",
+        "istanbul-reports": "^1.5.1",
+        "js-yaml": "^3.7.0",
+        "mkdirp": "^0.5.1",
+        "once": "^1.4.0"
       },
       "dependencies": {
-        "async": {
-          "version": "1.5.2",
-          "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        },
-        "escodegen": {
-          "version": "1.8.1",
-          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
-          "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+        "append-transform": {
+          "version": "0.4.0",
+          "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
+          "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
           "dev": true,
           "requires": {
-            "esprima": "^2.7.1",
-            "estraverse": "^1.9.1",
-            "esutils": "^2.0.2",
-            "optionator": "^0.8.1",
-            "source-map": "~0.2.0"
+            "default-require-extensions": "^1.0.0"
           }
         },
-        "esprima": {
-          "version": "2.7.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
-          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
-          "dev": true
-        },
-        "estraverse": {
-          "version": "1.9.3",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
-          "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
-          "dev": true
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
         },
-        "glob": {
-          "version": "5.0.15",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
-          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+        "default-require-extensions": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
+          "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
           "dev": true,
           "requires": {
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "2 || 3",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
+            "strip-bom": "^2.0.0"
           }
         },
         "has-flag": {
@@ -6295,22 +6875,61 @@
           "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
           "dev": true
         },
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+        "istanbul-lib-coverage": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+          "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
           "dev": true
         },
-        "source-map": {
-          "version": "0.2.0",
-          "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
-          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+        "istanbul-lib-hook": {
+          "version": "1.2.2",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz",
+          "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==",
           "dev": true,
-          "optional": true,
           "requires": {
-            "amdefine": ">=0.0.4"
+            "append-transform": "^0.4.0"
           }
         },
+        "istanbul-lib-report": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz",
+          "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==",
+          "dev": true,
+          "requires": {
+            "istanbul-lib-coverage": "^1.2.1",
+            "mkdirp": "^0.5.1",
+            "path-parse": "^1.0.5",
+            "supports-color": "^3.1.2"
+          }
+        },
+        "istanbul-lib-source-maps": {
+          "version": "1.2.6",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz",
+          "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==",
+          "dev": true,
+          "requires": {
+            "debug": "^3.1.0",
+            "istanbul-lib-coverage": "^1.2.1",
+            "mkdirp": "^0.5.1",
+            "rimraf": "^2.6.1",
+            "source-map": "^0.5.3"
+          }
+        },
+        "istanbul-reports": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz",
+          "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==",
+          "dev": true,
+          "requires": {
+            "handlebars": "^4.0.3"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        },
         "supports-color": {
           "version": "3.2.3",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -6319,35 +6938,9 @@
           "requires": {
             "has-flag": "^1.0.0"
           }
-        },
-        "wordwrap": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
-          "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-          "dev": true
         }
       }
     },
-    "istanbul-api": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz",
-      "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==",
-      "dev": true,
-      "requires": {
-        "async": "^2.1.4",
-        "compare-versions": "^3.1.0",
-        "fileset": "^2.0.2",
-        "istanbul-lib-coverage": "^1.2.0",
-        "istanbul-lib-hook": "^1.2.0",
-        "istanbul-lib-instrument": "^1.10.1",
-        "istanbul-lib-report": "^1.1.4",
-        "istanbul-lib-source-maps": "^1.2.4",
-        "istanbul-reports": "^1.3.0",
-        "js-yaml": "^3.7.0",
-        "mkdirp": "^0.5.1",
-        "once": "^1.4.0"
-      }
-    },
     "istanbul-instrumenter-loader": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
@@ -6395,25 +6988,10 @@
         }
       }
     },
-    "istanbul-lib-coverage": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz",
-      "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==",
-      "dev": true
-    },
-    "istanbul-lib-hook": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz",
-      "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==",
-      "dev": true,
-      "requires": {
-        "append-transform": "^1.0.0"
-      }
-    },
     "istanbul-lib-instrument": {
-      "version": "1.10.1",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz",
-      "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==",
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
+      "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
       "dev": true,
       "requires": {
         "babel-generator": "^6.18.0",
@@ -6421,72 +6999,18 @@
         "babel-traverse": "^6.18.0",
         "babel-types": "^6.18.0",
         "babylon": "^6.18.0",
-        "istanbul-lib-coverage": "^1.2.0",
+        "istanbul-lib-coverage": "^1.2.1",
         "semver": "^5.3.0"
-      }
-    },
-    "istanbul-lib-report": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz",
-      "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==",
-      "dev": true,
-      "requires": {
-        "istanbul-lib-coverage": "^1.2.0",
-        "mkdirp": "^0.5.1",
-        "path-parse": "^1.0.5",
-        "supports-color": "^3.1.2"
       },
       "dependencies": {
-        "has-flag": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
-          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+        "istanbul-lib-coverage": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+          "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
           "dev": true
-        },
-        "supports-color": {
-          "version": "3.2.3",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
-          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^1.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-lib-source-maps": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz",
-      "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.1.0",
-        "istanbul-lib-coverage": "^1.2.0",
-        "mkdirp": "^0.5.1",
-        "rimraf": "^2.6.1",
-        "source-map": "^0.5.3"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
         }
       }
     },
-    "istanbul-reports": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz",
-      "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==",
-      "dev": true,
-      "requires": {
-        "handlebars": "^4.0.3"
-      }
-    },
     "jasmine": {
       "version": "2.99.0",
       "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz",
@@ -6528,9 +7052,9 @@
       "dev": true
     },
     "js-base64": {
-      "version": "2.4.9",
-      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
-      "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
       "dev": true,
       "optional": true
     },
@@ -6541,9 +7065,9 @@
       "dev": true
     },
     "js-yaml": {
-      "version": "3.10.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
-      "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+      "version": "3.13.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz",
+      "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==",
       "dev": true,
       "requires": {
         "argparse": "^1.0.7",
@@ -6577,18 +7101,9 @@
     },
     "json-schema-traverse": {
       "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
-      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-      "dev": true,
-      "requires": {
-        "jsonify": "~0.0.0"
-      }
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
     },
     "json-stringify-safe": {
       "version": "5.0.1",
@@ -6603,16 +7118,21 @@
       "dev": true
     },
     "json5": {
-      "version": "0.5.1",
-      "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
-      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
-      "dev": true
-    },
-    "jsonify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-      "dev": true
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
     },
     "jsonpointer": {
       "version": "4.0.1",
@@ -7076,9 +7596,9 @@
           "dev": true
         },
         "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+          "version": "0.5.11",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
+          "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
           "dev": true,
           "requires": {
             "buffer-from": "^1.0.0",
@@ -7119,9 +7639,9 @@
       }
     },
     "less": {
-      "version": "3.8.1",
-      "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
-      "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
+      "version": "3.9.0",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz",
+      "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==",
       "dev": true,
       "requires": {
         "clone": "^2.1.2",
@@ -7135,185 +7655,12 @@
         "source-map": "~0.6.0"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.5.5",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
-          "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true,
-          "optional": true
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.21",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
-          "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.37.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true,
-          "optional": true
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true,
           "optional": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true,
-          "optional": true
         }
       }
     },
@@ -7326,14 +7673,6 @@
         "clone": "^2.1.1",
         "loader-utils": "^1.1.0",
         "pify": "^3.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
       }
     },
     "levn": {
@@ -7341,6 +7680,7 @@
       "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
       "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
       "dev": true,
+      "optional": true,
       "requires": {
         "prelude-ls": "~1.1.2",
         "type-check": "~0.3.2"
@@ -7350,13 +7690,15 @@
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
       "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "libmime": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz",
       "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=",
       "dev": true,
+      "optional": true,
       "requires": {
         "iconv-lite": "0.4.15",
         "libbase64": "0.1.0",
@@ -7367,7 +7709,8 @@
           "version": "0.4.15",
           "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
           "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -7375,44 +7718,57 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
       "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "license-webpack-plugin": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz",
-      "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz",
+      "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==",
       "dev": true,
       "requires": {
+        "@types/webpack-sources": "^0.1.5",
         "webpack-sources": "^1.2.0"
       }
     },
     "load-json-file": {
-      "version": "2.0.0",
-      "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
-      "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
       "dev": true,
+      "optional": true,
       "requires": {
         "graceful-fs": "^4.1.2",
         "parse-json": "^2.2.0",
         "pify": "^2.0.0",
-        "strip-bom": "^3.0.0"
+        "pinkie-promise": "^2.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
       }
     },
     "loader-runner": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz",
-      "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==",
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
       "dev": true
     },
     "loader-utils": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
-      "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
       "dev": true,
       "requires": {
-        "big.js": "^3.1.3",
+        "big.js": "^5.2.2",
         "emojis-list": "^2.0.0",
-        "json5": "^0.5.0"
+        "json5": "^1.0.1"
       }
     },
     "locate-path": {
@@ -7426,9 +7782,9 @@
       }
     },
     "lodash": {
-      "version": "4.17.5",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
-      "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=",
+      "version": "4.17.11",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+      "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
       "dev": true
     },
     "lodash.assign": {
@@ -7630,7 +7986,8 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
       "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "loose-envify": {
       "version": "1.4.0",
@@ -7646,6 +8003,7 @@
       "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
       "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
       "dev": true,
+      "optional": true,
       "requires": {
         "currently-unhandled": "^0.4.1",
         "signal-exit": "^3.0.0"
@@ -7662,12 +8020,12 @@
       }
     },
     "magic-string": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz",
-      "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==",
+      "version": "0.25.2",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz",
+      "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==",
       "dev": true,
       "requires": {
-        "sourcemap-codec": "^1.4.1"
+        "sourcemap-codec": "^1.4.4"
       }
     },
     "mailcomposer": {
@@ -7730,14 +8088,6 @@
       "dev": true,
       "requires": {
         "pify": "^3.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
       }
     },
     "make-error": {
@@ -7746,12 +8096,6 @@
       "integrity": "sha1-GZeO1XX56VRdL/jBPjO10Ypn1TU=",
       "dev": true
     },
-    "mamacro": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
-      "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
-      "dev": true
-    },
     "map-age-cleaner": {
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
@@ -7771,7 +8115,8 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
       "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "map-visit": {
       "version": "1.0.0",
@@ -7787,12 +8132,6 @@
       "resolved": "http://registry.npmjs.org/marked/-/marked-0.3.19.tgz",
       "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg=="
     },
-    "math-random": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
-      "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
-      "dev": true
-    },
     "md5.js": {
       "version": "1.3.5",
       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -7835,113 +8174,33 @@
       "requires": {
         "errno": "^0.1.3",
         "readable-stream": "^2.0.1"
-      }
-    },
-    "meow": {
-      "version": "3.7.0",
-      "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
-      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase-keys": "^2.0.0",
-        "decamelize": "^1.1.2",
-        "loud-rejection": "^1.0.0",
-        "map-obj": "^1.0.1",
-        "minimist": "^1.1.3",
-        "normalize-package-data": "^2.3.4",
-        "object-assign": "^4.0.1",
-        "read-pkg-up": "^1.0.1",
-        "redent": "^1.0.0",
-        "trim-newlines": "^1.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "path-exists": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "1.1.0",
-          "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
-          "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0",
-            "strip-bom": "^2.0.0"
-          }
-        },
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      },
+      "dependencies": {
         "minimist": {
           "version": "1.2.0",
           "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
           "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
           "dev": true,
           "optional": true
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-type": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
-          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "read-pkg": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
-          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "load-json-file": "^1.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^1.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
-          "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "find-up": "^1.0.0",
-            "read-pkg": "^1.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
-          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "is-utf8": "^0.2.0"
-          }
         }
       }
     },
@@ -8030,9 +8289,9 @@
       "dev": true
     },
     "mini-css-extract-plugin": {
-      "version": "0.4.3",
-      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz",
-      "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==",
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz",
+      "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0",
@@ -8055,7 +8314,7 @@
     "minimatch": {
       "version": "3.0.4",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
       "dev": true,
       "requires": {
         "brace-expansion": "^1.1.7"
@@ -8063,7 +8322,7 @@
     },
     "minimist": {
       "version": "0.0.8",
-      "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
       "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
       "dev": true
     },
@@ -8126,7 +8385,7 @@
     },
     "mkdirp": {
       "version": "0.5.1",
-      "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
       "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
       "dev": true,
       "requires": {
@@ -8233,256 +8492,83 @@
       "dev": true
     },
     "neo-async": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
-      "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
-      "dev": true
-    },
-    "netmask": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
-      "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=",
-      "dev": true,
-      "optional": true
-    },
-    "ng2-charts": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz",
-      "integrity": "sha512-9w0WH69x5/nuqC1og2WaY39NbaBqTGIP1+5gZaH7/KPN6UEPonNg/pYnsIVklLj1DWPWXKa8+XXIJZ1jy5nLxg==",
-      "requires": {
-        "chart.js": "^2.6.0"
-      }
-    },
-    "ngx-markdown": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-1.6.0.tgz",
-      "integrity": "sha512-roFZyUKtdMB32V2pG8c/SAuM+mTL9EM79VAzGtDOaF3FIJJiknXADV/wF/yV9rQgnGi00vte7ksAkEs+/PMcpw==",
-      "requires": {
-        "@types/marked": "0.3.0",
-        "@types/prismjs": "^1.9.0",
-        "marked": "^0.3.19",
-        "prismjs": "^1.14.0"
-      }
-    },
-    "nice-try": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
-      "dev": true
-    },
-    "node-forge": {
-      "version": "0.7.5",
-      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
-      "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
-      "dev": true
-    },
-    "node-gyp": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
-      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "fstream": "^1.0.0",
-        "glob": "^7.0.3",
-        "graceful-fs": "^4.1.2",
-        "mkdirp": "^0.5.0",
-        "nopt": "2 || 3",
-        "npmlog": "0 || 1 || 2 || 3 || 4",
-        "osenv": "0",
-        "request": "^2.87.0",
-        "rimraf": "2",
-        "semver": "~5.3.0",
-        "tar": "^2.0.0",
-        "which": "1"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.5.5",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
-          "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true,
-          "optional": true
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.21",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
-          "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.37.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true,
-          "optional": true
-        },
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
+      "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
+      "dev": true
+    },
+    "netmask": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
+      "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=",
+      "dev": true,
+      "optional": true
+    },
+    "ng2-charts": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz",
+      "integrity": "sha512-9w0WH69x5/nuqC1og2WaY39NbaBqTGIP1+5gZaH7/KPN6UEPonNg/pYnsIVklLj1DWPWXKa8+XXIJZ1jy5nLxg==",
+      "requires": {
+        "chart.js": "^2.6.0"
+      }
+    },
+    "ngx-markdown": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-1.6.0.tgz",
+      "integrity": "sha512-roFZyUKtdMB32V2pG8c/SAuM+mTL9EM79VAzGtDOaF3FIJJiknXADV/wF/yV9rQgnGi00vte7ksAkEs+/PMcpw==",
+      "requires": {
+        "@types/marked": "0.3.0",
+        "@types/prismjs": "^1.9.0",
+        "marked": "^0.3.19",
+        "prismjs": "^1.14.0"
+      }
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
+    "node-forge": {
+      "version": "0.7.5",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+      "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
+      "dev": true
+    },
+    "node-gyp": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "fstream": "^1.0.0",
+        "glob": "^7.0.3",
+        "graceful-fs": "^4.1.2",
+        "mkdirp": "^0.5.0",
+        "nopt": "2 || 3",
+        "npmlog": "0 || 1 || 2 || 3 || 4",
+        "osenv": "0",
+        "request": "^2.87.0",
+        "rimraf": "2",
+        "semver": "~5.3.0",
+        "tar": "^2.0.0",
+        "which": "1"
+      },
+      "dependencies": {
         "semver": {
           "version": "5.3.0",
           "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
           "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
           "dev": true,
           "optional": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true,
-          "optional": true
         }
       }
     },
     "node-libs-browser": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
-      "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz",
+      "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==",
       "dev": true,
       "requires": {
         "assert": "^1.1.1",
@@ -8492,7 +8578,7 @@
         "constants-browserify": "^1.0.0",
         "crypto-browserify": "^3.11.0",
         "domain-browser": "^1.1.1",
-        "events": "^1.0.0",
+        "events": "^3.0.0",
         "https-browserify": "^1.0.0",
         "os-browserify": "^0.3.0",
         "path-browserify": "0.0.0",
@@ -8506,23 +8592,34 @@
         "timers-browserify": "^2.0.4",
         "tty-browserify": "0.0.0",
         "url": "^0.11.0",
-        "util": "^0.10.3",
+        "util": "^0.11.0",
         "vm-browserify": "0.0.4"
+      },
+      "dependencies": {
+        "util": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+          "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.3"
+          }
+        }
       }
     },
     "node-releases": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.4.tgz",
-      "integrity": "sha512-GqRV9GcHw8JCRDaP/JoeNMNzEGzHAknMvIHqMb2VeTOmg1Cf9+ej8bkV12tHfzWHQMCkQ5zUFgwFUkfraynNCw==",
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.13.tgz",
+      "integrity": "sha512-fKZGviSXR6YvVPyc011NHuJDSD8gFQvLPmc2d2V3BS4gr52ycyQ1Xzs7a8B+Ax3Ni/W+5h1h4SqmzeoA8WZRmA==",
       "dev": true,
       "requires": {
         "semver": "^5.3.0"
       }
     },
     "node-sass": {
-      "version": "4.9.3",
-      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz",
-      "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz",
+      "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==",
       "dev": true,
       "optional": true,
       "requires": {
@@ -8541,25 +8638,12 @@
         "nan": "^2.10.0",
         "node-gyp": "^3.8.0",
         "npmlog": "^4.0.0",
-        "request": "2.87.0",
+        "request": "^2.88.0",
         "sass-graph": "^2.2.4",
         "stdout-stream": "^1.4.0",
         "true-case-path": "^1.0.2"
       },
       "dependencies": {
-        "ajv": {
-          "version": "5.5.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
-          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "co": "^4.6.0",
-            "fast-deep-equal": "^1.0.0",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.3.0"
-          }
-        },
         "ansi-styles": {
           "version": "2.2.1",
           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
@@ -8567,20 +8651,6 @@
           "dev": true,
           "optional": true
         },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
         "chalk": {
           "version": "1.1.3",
           "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -8595,105 +8665,6 @@
             "supports-color": "^2.0.0"
           }
         },
-        "fast-deep-equal": {
-          "version": "1.1.0",
-          "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
-          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.0.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
-          "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^5.1.0",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "json-schema-traverse": {
-          "version": "0.3.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
-          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.87.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
-          "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.6.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.5",
-            "extend": "~3.0.1",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.1",
-            "har-validator": "~5.0.3",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.17",
-            "oauth-sign": "~0.8.2",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.1",
-            "safe-buffer": "^5.1.1",
-            "tough-cookie": "~2.3.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.1.0"
-          }
-        },
         "supports-color": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -8747,13 +8718,15 @@
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
       "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "nodemailer-shared": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
       "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=",
       "dev": true,
+      "optional": true,
       "requires": {
         "nodemailer-fetch": "1.6.0"
       }
@@ -8786,13 +8759,15 @@
       "version": "0.1.10",
       "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz",
       "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "nopt": {
       "version": "3.0.6",
       "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
       "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
       "dev": true,
+      "optional": true,
       "requires": {
         "abbrev": "1"
       }
@@ -8878,6 +8853,7 @@
       "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
       "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "are-we-there-yet": "~1.1.2",
         "console-control-strings": "~1.1.0",
@@ -8916,7 +8892,8 @@
       "version": "0.8.2",
       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
       "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "object-assign": {
       "version": "4.1.1",
@@ -8969,16 +8946,6 @@
         }
       }
     },
-    "object.omit": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
-      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-      "dev": true,
-      "requires": {
-        "for-own": "^0.1.4",
-        "is-extendable": "^0.1.1"
-      }
-    },
     "object.pick": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -9012,9 +8979,9 @@
       }
     },
     "on-headers": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
-      "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
       "dev": true
     },
     "once": {
@@ -9059,6 +9026,7 @@
       "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
       "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
       "dev": true,
+      "optional": true,
       "requires": {
         "deep-is": "~0.1.3",
         "fast-levenshtein": "~2.0.4",
@@ -9072,7 +9040,8 @@
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
           "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -9104,14 +9073,13 @@
       "dev": true
     },
     "os-locale": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
-      "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
       "dev": true,
+      "optional": true,
       "requires": {
-        "execa": "^0.7.0",
-        "lcid": "^1.0.0",
-        "mem": "^1.1.0"
+        "lcid": "^1.0.0"
       }
     },
     "os-tmpdir": {
@@ -9143,9 +9111,9 @@
       "dev": true
     },
     "p-is-promise": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
-      "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
+      "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
       "dev": true
     },
     "p-limit": {
@@ -9200,6 +9168,7 @@
           "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
           "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "es6-promisify": "^5.0.0"
           }
@@ -9209,6 +9178,7 @@
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
           "dev": true,
+          "optional": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -9252,9 +9222,9 @@
       }
     },
     "pako": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
-      "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
       "dev": true
     },
     "parallel-transform": {
@@ -9264,50 +9234,22 @@
       "dev": true,
       "requires": {
         "cyclist": "~0.2.2",
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.1.5"
-      }
-    },
-    "parse-asn1": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
-      "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
-      "dev": true,
-      "requires": {
-        "asn1.js": "^4.0.0",
-        "browserify-aes": "^1.0.0",
-        "create-hash": "^1.1.0",
-        "evp_bytestokey": "^1.0.0",
-        "pbkdf2": "^3.0.3"
-      }
-    },
-    "parse-glob": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
-      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-      "dev": true,
-      "requires": {
-        "glob-base": "^0.3.0",
-        "is-dotfile": "^1.0.0",
-        "is-extglob": "^1.0.0",
-        "is-glob": "^2.0.0"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        }
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+      "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
       }
     },
     "parse-json": {
@@ -9394,7 +9336,7 @@
     },
     "path-is-absolute": {
       "version": "1.0.1",
-      "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
       "dev": true
     },
@@ -9442,12 +9384,12 @@
       "dev": true
     },
     "path-type": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
-      "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
       "dev": true,
       "requires": {
-        "pify": "^2.0.0"
+        "pify": "^3.0.0"
       }
     },
     "pbkdf2": {
@@ -9463,16 +9405,10 @@
         "sha.js": "^2.4.8"
       }
     },
-    "performance-now": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
-      "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
-      "dev": true
-    },
     "pify": {
-      "version": "2.3.0",
-      "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
       "dev": true
     },
     "pinkie": {
@@ -9500,9 +9436,9 @@
       }
     },
     "portfinder": {
-      "version": "1.0.17",
-      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
-      "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
+      "version": "1.0.20",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz",
+      "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==",
       "dev": true,
       "requires": {
         "async": "^1.5.2",
@@ -9525,16 +9461,38 @@
       "dev": true
     },
     "postcss": {
-      "version": "7.0.5",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz",
-      "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==",
+      "version": "7.0.14",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz",
+      "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==",
       "dev": true,
       "requires": {
-        "chalk": "^2.4.1",
+        "chalk": "^2.4.2",
         "source-map": "^0.6.1",
-        "supports-color": "^5.5.0"
+        "supports-color": "^6.1.0"
       },
       "dependencies": {
+        "chalk": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "5.5.0",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+              "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+              "dev": true,
+              "requires": {
+                "has-flag": "^3.0.0"
+              }
+            }
+          }
+        },
         "has-flag": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -9548,9 +9506,9 @@
           "dev": true
         },
         "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
           "dev": true,
           "requires": {
             "has-flag": "^3.0.0"
@@ -9559,9 +9517,9 @@
       }
     },
     "postcss-import": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz",
-      "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==",
+      "version": "12.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz",
+      "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==",
       "dev": true,
       "requires": {
         "postcss": "^7.0.1",
@@ -9602,13 +9560,8 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
       "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
-      "dev": true
-    },
-    "preserve": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
-      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "prismjs": {
       "version": "1.15.0",
@@ -9798,6 +9751,7 @@
           "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
           "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "es6-promisify": "^5.0.0"
           }
@@ -9807,6 +9761,7 @@
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
           "dev": true,
+          "optional": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -9855,11 +9810,10 @@
       "dev": true
     },
     "psl": {
-      "version": "1.1.29",
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
-      "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
-      "dev": true,
-      "optional": true
+      "version": "1.1.31",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+      "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
+      "dev": true
     },
     "public-encrypt": {
       "version": "4.0.3",
@@ -9922,12 +9876,6 @@
       "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
       "dev": true
     },
-    "qs": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
-      "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
-      "dev": true
-    },
     "querystring": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
@@ -9941,40 +9889,15 @@
       "dev": true
     },
     "querystringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz",
-      "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+      "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
       "dev": true
     },
-    "randomatic": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
-      "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
-      "dev": true,
-      "requires": {
-        "is-number": "^4.0.0",
-        "kind-of": "^6.0.0",
-        "math-random": "^1.0.1"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
-          "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
     "randombytes": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
-      "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
       "dev": true,
       "requires": {
         "safe-buffer": "^5.1.0"
@@ -10035,10 +9958,14 @@
       }
     },
     "raw-loader": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
-      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
-      "dev": true
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz",
+      "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0"
+      }
     },
     "read-cache": {
       "version": "1.0.0",
@@ -10047,27 +9974,81 @@
       "dev": true,
       "requires": {
         "pify": "^2.3.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
       }
     },
     "read-pkg": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
-      "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
       "dev": true,
+      "optional": true,
       "requires": {
-        "load-json-file": "^2.0.0",
+        "load-json-file": "^1.0.0",
         "normalize-package-data": "^2.3.2",
-        "path-type": "^2.0.0"
+        "path-type": "^1.0.0"
+      },
+      "dependencies": {
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
       }
     },
     "read-pkg-up": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
-      "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
       "dev": true,
+      "optional": true,
       "requires": {
-        "find-up": "^2.0.0",
-        "read-pkg": "^2.0.0"
+        "find-up": "^1.0.0",
+        "read-pkg": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        }
       }
     },
     "readable-stream": {
@@ -10144,9 +10125,9 @@
       "optional": true
     },
     "reflect-metadata": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
-      "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==",
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+      "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
       "dev": true
     },
     "regenerate": {
@@ -10161,15 +10142,6 @@
       "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
       "dev": true
     },
-    "regex-cache": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
-      "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
-      "dev": true,
-      "requires": {
-        "is-equal-shallow": "^0.1.3"
-      }
-    },
     "regex-not": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
@@ -10193,7 +10165,7 @@
     },
     "regjsgen": {
       "version": "0.2.0",
-      "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
       "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
       "dev": true
     },
@@ -10208,69 +10180,192 @@
       "dependencies": {
         "jsesc": {
           "version": "0.5.0",
-          "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
           "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
           "dev": true
         }
       }
     },
-    "remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "repeat-element": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
-      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
-      "dev": true
-    },
-    "repeat-string": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
-      "dev": true
-    },
-    "repeating": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
-      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
-      "dev": true,
-      "requires": {
-        "is-finite": "^1.0.0"
-      }
-    },
-    "request": {
-      "version": "2.81.0",
-      "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
-      "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
-      "dev": true,
-      "requires": {
-        "aws-sign2": "~0.6.0",
-        "aws4": "^1.2.1",
-        "caseless": "~0.12.0",
-        "combined-stream": "~1.0.5",
-        "extend": "~3.0.0",
-        "forever-agent": "~0.6.1",
-        "form-data": "~2.1.1",
-        "har-validator": "~4.2.1",
-        "hawk": "~3.1.3",
-        "http-signature": "~1.1.0",
-        "is-typedarray": "~1.0.0",
-        "isstream": "~0.1.2",
-        "json-stringify-safe": "~5.0.1",
-        "mime-types": "~2.1.7",
-        "oauth-sign": "~0.8.1",
-        "performance-now": "^0.2.0",
-        "qs": "~6.4.0",
-        "safe-buffer": "^5.0.1",
-        "stringstream": "~0.0.4",
-        "tough-cookie": "~2.3.0",
-        "tunnel-agent": "^0.6.0",
-        "uuid": "^3.0.0"
-      }
-    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "repeat-element": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "request": {
+      "version": "2.88.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.0",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.4.3",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+          "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "assert-plus": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+          "dev": true
+        },
+        "aws-sign2": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+          "dev": true
+        },
+        "aws4": {
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+          "dev": true
+        },
+        "extend": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+          "dev": true
+        },
+        "form-data": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+          "dev": true,
+          "requires": {
+            "asynckit": "^0.4.0",
+            "combined-stream": "^1.0.6",
+            "mime-types": "^2.1.12"
+          }
+        },
+        "har-schema": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+          "dev": true
+        },
+        "har-validator": {
+          "version": "5.1.3",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.5.5",
+            "har-schema": "^2.0.0"
+          }
+        },
+        "http-signature": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+          "dev": true,
+          "requires": {
+            "assert-plus": "^1.0.0",
+            "jsprim": "^1.2.2",
+            "sshpk": "^1.7.0"
+          }
+        },
+        "mime-db": {
+          "version": "1.38.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
+          "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
+          "dev": true
+        },
+        "mime-types": {
+          "version": "2.1.22",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
+          "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
+          "dev": true,
+          "requires": {
+            "mime-db": "~1.38.0"
+          }
+        },
+        "oauth-sign": {
+          "version": "0.9.0",
+          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+          "dev": true
+        },
+        "performance-now": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.5.2",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+          "dev": true
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+          "dev": true
+        },
+        "tough-cookie": {
+          "version": "2.4.3",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+          "dev": true,
+          "requires": {
+            "psl": "^1.1.24",
+            "punycode": "^1.4.1"
+          }
+        }
+      }
+    },
     "requestretry": {
       "version": "1.13.0",
       "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz",
@@ -10461,143 +10556,6 @@
         "lodash": "^4.0.0",
         "scss-tokenizer": "^0.2.3",
         "yargs": "^7.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true
-        },
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "path-exists": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "1.1.0",
-          "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
-          "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0",
-            "strip-bom": "^2.0.0"
-          }
-        },
-        "os-locale": {
-          "version": "1.4.0",
-          "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-          "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "lcid": "^1.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-type": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
-          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "read-pkg": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
-          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "load-json-file": "^1.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^1.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
-          "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "find-up": "^1.0.0",
-            "read-pkg": "^1.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
-          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "is-utf8": "^0.2.0"
-          }
-        },
-        "which-module": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
-          "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
-          "dev": true,
-          "optional": true
-        },
-        "yargs": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
-          "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "camelcase": "^3.0.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^1.4.0",
-            "read-pkg-up": "^1.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^1.0.2",
-            "which-module": "^1.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^5.0.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
-          "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "camelcase": "^3.0.0"
-          }
-        }
       }
     },
     "sass-loader": {
@@ -10612,14 +10570,6 @@
         "neo-async": "^2.5.0",
         "pify": "^3.0.0",
         "semver": "^5.5.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
       }
     },
     "saucelabs": {
@@ -10769,9 +10719,9 @@
       }
     },
     "serialize-javascript": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
-      "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz",
+      "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==",
       "dev": true
     },
     "serve-index": {
@@ -10943,6 +10893,7 @@
       "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz",
       "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=",
       "dev": true,
+      "optional": true,
       "requires": {
         "httpntlm": "1.6.1",
         "nodemailer-shared": "1.1.0"
@@ -11061,6 +11012,7 @@
       "resolved": "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
       "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
       "dev": true,
+      "optional": true,
       "requires": {
         "hoek": "2.x.x"
       }
@@ -11145,19 +11097,28 @@
       }
     },
     "sockjs-client": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
-      "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
+      "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
       "dev": true,
       "requires": {
-        "debug": "^2.6.6",
-        "eventsource": "0.1.6",
-        "faye-websocket": "~0.11.0",
-        "inherits": "^2.0.1",
+        "debug": "^3.2.5",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "~0.11.1",
+        "inherits": "^2.0.3",
         "json3": "^3.3.2",
-        "url-parse": "^1.1.8"
+        "url-parse": "^1.4.3"
       },
       "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
         "faye-websocket": {
           "version": "0.11.1",
           "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
@@ -11166,6 +11127,12 @@
           "requires": {
             "websocket-driver": ">=0.5.1"
           }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
         }
       }
     },
@@ -11310,38 +11277,90 @@
       "dev": true
     },
     "spdy": {
-      "version": "3.4.7",
-      "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
-      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz",
+      "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==",
       "dev": true,
       "requires": {
-        "debug": "^2.6.8",
-        "handle-thing": "^1.2.5",
+        "debug": "^4.1.0",
+        "handle-thing": "^2.0.0",
         "http-deceiver": "^1.2.7",
-        "safe-buffer": "^5.0.1",
         "select-hose": "^2.0.0",
-        "spdy-transport": "^2.0.18"
+        "spdy-transport": "^3.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
       }
     },
     "spdy-transport": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz",
-      "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+      "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
       "dev": true,
       "requires": {
-        "debug": "^2.6.8",
-        "detect-node": "^2.0.3",
+        "debug": "^4.1.0",
+        "detect-node": "^2.0.4",
         "hpack.js": "^2.1.6",
-        "obuf": "^1.1.1",
-        "readable-stream": "^2.2.9",
-        "safe-buffer": "^5.0.1",
-        "wbuf": "^1.7.2"
+        "obuf": "^1.1.2",
+        "readable-stream": "^3.0.6",
+        "wbuf": "^1.7.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
+          "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "string_decoder": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
+          "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
       }
     },
     "speed-measure-webpack-plugin": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz",
-      "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==",
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz",
+      "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==",
       "dev": true,
       "requires": {
         "chalk": "^2.0.1"
@@ -11442,9 +11461,9 @@
       }
     },
     "stream-browserify": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
-      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
       "dev": true,
       "requires": {
         "inherits": "~2.0.1",
@@ -11553,7 +11572,8 @@
       "version": "0.0.5",
       "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
       "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "strip-ansi": {
       "version": "3.0.1",
@@ -11565,10 +11585,13 @@
       }
     },
     "strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-      "dev": true
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "dev": true,
+      "requires": {
+        "is-utf8": "^0.2.0"
+      }
     },
     "strip-eof": {
       "version": "1.0.0",
@@ -11593,25 +11616,13 @@
       "dev": true
     },
     "style-loader": {
-      "version": "0.23.0",
-      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz",
-      "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==",
+      "version": "0.23.1",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+      "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0",
-        "schema-utils": "^0.4.5"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
+        "schema-utils": "^1.0.0"
       }
     },
     "stylus": {
@@ -11680,9 +11691,9 @@
       "dev": true
     },
     "tapable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz",
-      "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
+      "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==",
       "dev": true
     },
     "tar": {
@@ -11698,20 +11709,20 @@
       }
     },
     "terser": {
-      "version": "3.10.12",
-      "resolved": "https://registry.npmjs.org/terser/-/terser-3.10.12.tgz",
-      "integrity": "sha512-3ODPC1eVt25EVNb04s/PkHxOmzKBQUF6bwwuR6h2DbEF8/j265Y1UkwNtOk9am/pRxfJ5HPapOlUlO6c16mKQQ==",
+      "version": "3.17.0",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
+      "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
       "dev": true,
       "requires": {
-        "commander": "~2.17.1",
+        "commander": "^2.19.0",
         "source-map": "~0.6.1",
-        "source-map-support": "~0.5.6"
+        "source-map-support": "~0.5.10"
       },
       "dependencies": {
         "commander": {
-          "version": "2.17.1",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
-          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+          "version": "2.20.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+          "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
           "dev": true
         },
         "source-map": {
@@ -11721,9 +11732,9 @@
           "dev": true
         },
         "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+          "version": "0.5.11",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
+          "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
           "dev": true,
           "requires": {
             "buffer-from": "^1.0.0",
@@ -11733,9 +11744,9 @@
       }
     },
     "terser-webpack-plugin": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz",
-      "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz",
+      "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==",
       "dev": true,
       "requires": {
         "cacache": "^11.0.2",
@@ -11743,41 +11754,47 @@
         "schema-utils": "^1.0.0",
         "serialize-javascript": "^1.4.0",
         "source-map": "^0.6.1",
-        "terser": "^3.8.1",
+        "terser": "^3.16.1",
         "webpack-sources": "^1.1.0",
         "worker-farm": "^1.5.2"
       },
       "dependencies": {
+        "bluebird": {
+          "version": "3.5.4",
+          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz",
+          "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
+          "dev": true
+        },
         "cacache": {
-          "version": "11.3.1",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
-          "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
+          "version": "11.3.2",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
           "dev": true,
           "requires": {
-            "bluebird": "^3.5.1",
-            "chownr": "^1.0.1",
-            "figgy-pudding": "^3.1.0",
-            "glob": "^7.1.2",
-            "graceful-fs": "^4.1.11",
-            "lru-cache": "^4.1.3",
+            "bluebird": "^3.5.3",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.3",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
             "mississippi": "^3.0.0",
             "mkdirp": "^0.5.1",
             "move-concurrently": "^1.0.1",
             "promise-inflight": "^1.0.1",
             "rimraf": "^2.6.2",
-            "ssri": "^6.0.0",
-            "unique-filename": "^1.1.0",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
             "y18n": "^4.0.0"
           }
         },
         "find-cache-dir": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz",
-          "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==",
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
           "dev": true,
           "requires": {
             "commondir": "^1.0.1",
-            "make-dir": "^1.0.0",
+            "make-dir": "^2.0.0",
             "pkg-dir": "^3.0.0"
           }
         },
@@ -11790,6 +11807,26 @@
             "locate-path": "^3.0.0"
           }
         },
+        "glob": {
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "graceful-fs": {
+          "version": "4.1.15",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+          "dev": true
+        },
         "locate-path": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -11801,15 +11838,24 @@
           }
         },
         "lru-cache": {
-          "version": "4.1.4",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz",
-          "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==",
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
           "dev": true,
           "requires": {
-            "pseudomap": "^1.0.2",
             "yallist": "^3.0.2"
           }
         },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
         "mississippi": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@@ -11829,9 +11875,9 @@
           }
         },
         "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
@@ -11847,9 +11893,15 @@
           }
         },
         "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
           "dev": true
         },
         "pkg-dir": {
@@ -11871,6 +11923,12 @@
             "once": "^1.3.1"
           }
         },
+        "semver": {
+          "version": "5.7.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+          "dev": true
+        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -11886,12 +11944,6 @@
             "figgy-pudding": "^3.5.1"
           }
         },
-        "y18n": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-          "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
-          "dev": true
-        },
         "yallist": {
           "version": "3.0.3",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
@@ -11902,7 +11954,7 @@
     },
     "through": {
       "version": "2.3.8",
-      "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
       "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
       "dev": true
     },
@@ -12051,14 +12103,15 @@
       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
       "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
       "dev": true,
+      "optional": true,
       "requires": {
         "punycode": "^1.4.1"
       }
     },
     "tree-kill": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
-      "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz",
+      "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==",
       "dev": true
     },
     "trim-newlines": {
@@ -12287,6 +12340,7 @@
       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
       "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
       "dev": true,
+      "optional": true,
       "requires": {
         "prelude-ls": "~1.1.2"
       }
@@ -12313,29 +12367,10 @@
       "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
       "dev": true
     },
-    "uglify-es": {
-      "version": "3.3.9",
-      "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
-      "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
-      "dev": true,
-      "requires": {
-        "commander": "~2.13.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "commander": {
-          "version": "2.13.0",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
-          "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
+    "typescript-map": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/typescript-map/-/typescript-map-0.0.7.tgz",
+      "integrity": "sha512-qLGAeshAnryHN1ycLS4nk+7195MYXbrCzI62bXl8TEqigD5otgHUGIdWsdn5MsbAX3ba5ZtkKEAM0LgaVUAdnQ=="
     },
     "uglify-to-browserify": {
       "version": "1.0.2",
@@ -12344,40 +12379,6 @@
       "dev": true,
       "optional": true
     },
-    "uglifyjs-webpack-plugin": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
-      "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
-      "dev": true,
-      "requires": {
-        "cacache": "^10.0.4",
-        "find-cache-dir": "^1.0.0",
-        "schema-utils": "^0.4.5",
-        "serialize-javascript": "^1.4.0",
-        "source-map": "^0.6.1",
-        "uglify-es": "^3.3.4",
-        "webpack-sources": "^1.1.0",
-        "worker-farm": "^1.5.2"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
     "ultron": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
@@ -12388,7 +12389,8 @@
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
       "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "union-value": {
       "version": "1.0.0",
@@ -12542,12 +12544,6 @@
         }
       }
     },
-    "url-join": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
-      "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=",
-      "dev": true
-    },
     "url-parse": {
       "version": "1.4.4",
       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz",
@@ -12612,9 +12608,9 @@
       "dev": true
     },
     "uuid": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
-      "integrity": "sha1-EsUou51Y0LkmXZovbw/ovhf/HxQ=",
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+      "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
       "dev": true
     },
     "uws": {
@@ -12782,17 +12778,17 @@
       }
     },
     "webpack": {
-      "version": "4.19.1",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz",
-      "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==",
+      "version": "4.29.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz",
+      "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.6",
-        "@webassemblyjs/helper-module-context": "1.7.6",
-        "@webassemblyjs/wasm-edit": "1.7.6",
-        "@webassemblyjs/wasm-parser": "1.7.6",
-        "acorn": "^5.6.2",
-        "acorn-dynamic-import": "^3.0.0",
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-module-context": "1.7.11",
+        "@webassemblyjs/wasm-edit": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11",
+        "acorn": "^6.0.5",
+        "acorn-dynamic-import": "^4.0.0",
         "ajv": "^6.1.0",
         "ajv-keywords": "^3.1.0",
         "chrome-trace-event": "^1.0.0",
@@ -12808,9 +12804,9 @@
         "node-libs-browser": "^2.0.0",
         "schema-utils": "^0.4.4",
         "tapable": "^1.1.0",
-        "uglifyjs-webpack-plugin": "^1.2.4",
+        "terser-webpack-plugin": "^1.1.0",
         "watchpack": "^1.5.0",
-        "webpack-sources": "^1.2.0"
+        "webpack-sources": "^1.3.0"
       },
       "dependencies": {
         "schema-utils": {
@@ -12853,31 +12849,29 @@
       }
     },
     "webpack-dev-middleware": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz",
-      "integrity": "sha512-5C5gXtOo1I6+0AEg4UPglYEtu3Rai6l5IiO6aUu65scHXz29dc3oIWMiRwvcNLXgL0HwRkRxa9N02ZjFt4hY8w==",
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz",
+      "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==",
       "dev": true,
       "requires": {
-        "loud-rejection": "^1.6.0",
         "memory-fs": "~0.4.1",
         "mime": "^2.3.1",
         "range-parser": "^1.0.3",
-        "url-join": "^4.0.0",
         "webpack-log": "^2.0.0"
       },
       "dependencies": {
         "mime": {
-          "version": "2.3.1",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
-          "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
+          "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
           "dev": true
         }
       }
     },
     "webpack-dev-server": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz",
-      "integrity": "sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==",
+      "version": "3.1.14",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz",
+      "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==",
       "dev": true,
       "requires": {
         "ansi-html": "0.0.7",
@@ -12899,13 +12893,15 @@
         "portfinder": "^1.0.9",
         "schema-utils": "^1.0.0",
         "selfsigned": "^1.9.1",
+        "semver": "^5.6.0",
         "serve-index": "^1.7.2",
         "sockjs": "0.3.19",
-        "sockjs-client": "1.1.5",
-        "spdy": "^3.4.1",
+        "sockjs-client": "1.3.0",
+        "spdy": "^4.0.0",
         "strip-ansi": "^3.0.0",
         "supports-color": "^5.1.0",
-        "webpack-dev-middleware": "3.2.0",
+        "url": "^0.11.0",
+        "webpack-dev-middleware": "3.4.0",
         "webpack-log": "^2.0.0",
         "yargs": "12.0.2"
       },
@@ -12916,6 +12912,12 @@
           "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
           "dev": true
         },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
         "cliui": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
@@ -12970,13 +12972,13 @@
           }
         },
         "execa": {
-          "version": "0.10.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-          "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
           "dev": true,
           "requires": {
             "cross-spawn": "^6.0.0",
-            "get-stream": "^3.0.0",
+            "get-stream": "^4.0.0",
             "is-stream": "^1.1.0",
             "npm-run-path": "^2.0.0",
             "p-finally": "^1.0.0",
@@ -12993,6 +12995,15 @@
             "locate-path": "^3.0.0"
           }
         },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
         "has-flag": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -13031,20 +13042,26 @@
           }
         },
         "mem": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
-          "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+          "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
           "dev": true,
           "requires": {
             "map-age-cleaner": "^0.1.1",
-            "mimic-fn": "^1.0.0",
-            "p-is-promise": "^1.1.0"
+            "mimic-fn": "^2.0.0",
+            "p-is-promise": "^2.0.0"
           }
         },
         "mime": {
-          "version": "2.3.1",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
-          "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
+          "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
+          "dev": true
+        },
+        "mimic-fn": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+          "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
           "dev": true
         },
         "ms": {
@@ -13054,20 +13071,20 @@
           "dev": true
         },
         "os-locale": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
-          "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
           "dev": true,
           "requires": {
-            "execa": "^0.10.0",
+            "execa": "^1.0.0",
             "lcid": "^2.0.0",
             "mem": "^4.0.0"
           }
         },
         "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
@@ -13083,9 +13100,25 @@
           }
         },
         "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "semver": {
+          "version": "5.7.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
           "dev": true
         },
         "string-width": {
@@ -13119,20 +13152,23 @@
           }
         },
         "webpack-dev-middleware": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz",
-          "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==",
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
+          "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
           "dev": true,
           "requires": {
-            "loud-rejection": "^1.6.0",
             "memory-fs": "~0.4.1",
             "mime": "^2.3.1",
-            "path-is-absolute": "^1.0.0",
             "range-parser": "^1.0.3",
-            "url-join": "^4.0.0",
             "webpack-log": "^2.0.0"
           }
         },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
         "xregexp": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
@@ -13178,29 +13214,21 @@
       "requires": {
         "ansi-colors": "^3.0.0",
         "uuid": "^3.3.2"
-      },
-      "dependencies": {
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true
-        }
       }
     },
     "webpack-merge": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
-      "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz",
+      "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==",
       "dev": true,
       "requires": {
         "lodash": "^4.17.5"
       }
     },
     "webpack-sources": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
-      "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
+      "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
       "dev": true,
       "requires": {
         "source-list-map": "^2.0.0",
@@ -13256,16 +13284,18 @@
       }
     },
     "which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-      "dev": true
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+      "dev": true,
+      "optional": true
     },
     "wide-align": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
       "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
       "dev": true,
+      "optional": true,
       "requires": {
         "string-width": "^1.0.2 || 2"
       }
@@ -13370,9 +13400,9 @@
       "dev": true
     },
     "y18n": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-      "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
       "dev": true
     },
     "yallist": {
@@ -13382,66 +13412,60 @@
       "dev": true
     },
     "yargs": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
-      "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
       "dev": true,
+      "optional": true,
       "requires": {
-        "camelcase": "^4.1.0",
+        "camelcase": "^3.0.0",
         "cliui": "^3.2.0",
         "decamelize": "^1.1.1",
         "get-caller-file": "^1.0.1",
-        "os-locale": "^2.0.0",
-        "read-pkg-up": "^2.0.0",
+        "os-locale": "^1.4.0",
+        "read-pkg-up": "^1.0.1",
         "require-directory": "^2.1.1",
         "require-main-filename": "^1.0.1",
         "set-blocking": "^2.0.0",
-        "string-width": "^2.0.0",
-        "which-module": "^2.0.0",
+        "string-width": "^1.0.2",
+        "which-module": "^1.0.0",
         "y18n": "^3.2.1",
-        "yargs-parser": "^7.0.0"
+        "yargs-parser": "^5.0.0"
       },
       "dependencies": {
-        "ansi-regex": {
+        "camelcase": {
           "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
           "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
+          "optional": true
         },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
           "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
+          "optional": true
         }
       }
     },
     "yargs-parser": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
-      "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
       "dev": true,
+      "optional": true,
       "requires": {
-        "camelcase": "^4.1.0"
+        "camelcase": "^3.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        }
       }
     },
     "yeast": {
diff --git a/package.json b/package.json
index 4e9dac24b66b338b20473d923a369efcdef99a18..4faf263ca093a23a7efb09d3729d68fe758c8544 100644
--- a/package.json
+++ b/package.json
@@ -37,18 +37,19 @@
     "rxjs": "^6.3.3",
     "rxjs-compat": "^6.2.2",
     "tslint-eslint-rules": "^5.3.1",
+    "typescript-map": "0.0.7",
     "zone.js": "^0.8.26"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "~0.10.0",
+    "@angular-devkit/build-angular": "^0.13.7",
     "@angular/cli": "7.0.6",
-    "@angular/compiler-cli": "7.1.0",
+    "@angular/compiler-cli": "^7.2.11",
     "@angular/language-service": "7.1.0",
     "@biesbjerg/ngx-translate-extract": "^2.3.4",
     "@types/jasmine": "^2.8.8",
     "@types/jasminewd2": "~2.0.2",
     "@types/node": "^6.0.116",
-    "codelyzer": "^4.4.4",
+    "codelyzer": "^4.5.0",
     "jasmine-core": "~2.8.0",
     "jasmine-spec-reporter": "~4.2.1",
     "karma": "^2.0.5",
diff --git a/proxy.conf.json b/proxy.conf.json
index c2e9c8823311057960824399f18aafc86f7620a9..93cc54a82c5dae28c32ca7e3deb83c19663e8fe4 100644
--- a/proxy.conf.json
+++ b/proxy.conf.json
@@ -1,4 +1,12 @@
 {
+  "/api/comment": {
+    "target": "http://localhost:8088",
+    "secure": false,
+    "pathRewrite": {
+      "^/api": ""
+    },
+		"logLevel": "debug"
+  },
   "/api": {
     "target": "http://localhost:8080",
     "secure": false,
diff --git a/src/app/app.component.html b/src/app/app.component.html
index b86ef90e22afcc573488a94b2a31092e5d3f795c..e69c12c153e2dd6e94d1dad08fa97d2254db4820 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,7 +1,7 @@
-<div fxLayout="column" fxFill>
-  <app-header></app-header>
-  <div fxFlex class="app-component">
-    <router-outlet></router-outlet>
+  <div fxLayout="column" fxFill appTheme>
+    <app-header #header></app-header>
+    <div fxFlex class="app-component">
+      <router-outlet></router-outlet>
+    </div>
+    <app-footer></app-footer>
   </div>
-  <app-footer></app-footer>
-</div>
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
index 23f30f8823f78bc2ff012e22dfa0f15a82ec9f7a..046919174d5af1f047768ca34bc8c6b79e2e1532 100644
--- a/src/app/app.component.scss
+++ b/src/app/app.component.scss
@@ -1,8 +1,6 @@
-@import '../theme/_variables.scss';
+@import '../theme/default-Theme/_variables.scss';
 
 .app-component {
   padding: 4%;
-  background-color: #b2dfdb;
+  background-color:var(--background);
 }
-
-
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index aae1fa0a69aeddecb214bb15270b559cdce4dea5..39c8d57d7b6e576f503beaa91ccd1d6b777e7f7e 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,5 +1,6 @@
 import { Component } from '@angular/core';
 import { TranslateService } from '@ngx-translate/core';
+import { ThemeService } from '../theme/theme.service';
 
 @Component({
   selector: 'app-root',
@@ -8,7 +9,8 @@ import { TranslateService } from '@ngx-translate/core';
 })
 export class AppComponent {
 
-  constructor(private translationService: TranslateService) {
+  constructor(private translationService: TranslateService,
+              private themeService: ThemeService) {
 
     translationService.setDefaultLang(this.translationService.getBrowserLang());
     sessionStorage.setItem('currentLang', this.translationService.getBrowserLang());
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 83012f4e168b12ce0e6b307ecedbef84c896e323..30c5ab13ffaff929b5963d9c28c31b7c37ce4af3 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -14,6 +14,7 @@ import { CommentService } from './services/http/comment.service';
 import { DataStoreService } from './services/util/data-store.service';
 import { ContentService } from './services/http/content.service';
 import { ContentAnswerService } from './services/http/content-answer.service';
+import { WsConnectorService } from './services/websockets/ws-connector.service';
 import { UserActivationComponent } from './components/home/_dialogs/user-activation/user-activation.component';
 import { AuthenticationInterceptor } from './interceptors/authentication.interceptor';
 import { EssentialsModule } from './components/essentials/essentials.module';
@@ -24,9 +25,8 @@ import { LanguageService } from './services/util/language.service';
 import { MarkdownService, MarkedOptions } from 'ngx-markdown';
 import { NewLandingComponent } from './components/home/new-landing/new-landing.component';
 import { HomePageComponent } from './components/home/home-page/home-page.component';
-import { InjectableRxStompConfig, RxStompService, rxStompServiceFactory } from '@stomp/ng2-stompjs';
-import { myRxStompConfig } from './rx-stomp.config';
 import { AppConfig } from './app.config';
+import { ThemeModule } from '../theme/theme.module';
 
 export function dialogClose(dialogResult: any) {
 }
@@ -54,7 +54,8 @@ export function initializeApp(appConfig: AppConfig) {
     BrowserModule,
     BrowserAnimationsModule,
     EssentialsModule,
-    SharedModule
+    SharedModule,
+    ThemeModule
   ],
   providers: [
     AppConfig,
@@ -67,15 +68,7 @@ export function initializeApp(appConfig: AppConfig) {
       useClass: AuthenticationInterceptor,
       multi: true
     },
-    {
-      provide: InjectableRxStompConfig,
-      useValue: myRxStompConfig
-    },
-    {
-      provide: RxStompService,
-      useFactory: rxStompServiceFactory,
-      deps: [InjectableRxStompConfig]
-    },
+    WsConnectorService,
     NotificationService,
     AuthenticationService,
     AuthenticationGuard,
@@ -88,6 +81,7 @@ export function initializeApp(appConfig: AppConfig) {
     MarkdownService,
     MarkedOptions,
     UserService,
+    WsConnectorService,
     {
       provide: MatDialogRef,
       useValue: {
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.html b/src/app/components/creator/_dialogs/comment-export/comment-export.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..29c5e5b78b517356c5e60c4cd3bb29116a16c1b4
--- /dev/null
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.html
@@ -0,0 +1,14 @@
+<div fxLayout="column" fxLayoutAlign="center center" fxLayoutGap="35px">
+    <h3>{{'comment-page.delimiter' | translate}}</h3>
+    <mat-radio-group [(ngModel)]="exportType">
+      <div fxLayout="column">
+        <mat-radio-button value="comma" checked><h4>{{'comment-page.comma' | translate}}</h4></mat-radio-button>
+        <mat-radio-button value="semicolon"><h4>{{'comment-page.semicolon' | translate}}</h4></mat-radio-button>
+      </div>
+    </mat-radio-group>
+  <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="20px">
+  <button mat-raised-button color="warn" (click)="onNoClick()">{{'comment-page.abort' | translate}}</button>
+    <button mat-raised-button color="primary"
+            (click)="onExport(exportType)">{{'comment-page.export' | translate}}</button>
+  </div>
+</div>
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss b/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..abe40e414eb4880fc99fe8157869a450bb5b089d
--- /dev/null
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss
@@ -0,0 +1,12 @@
+button {
+  min-width: 100px;
+}
+
+h3 {
+  font-size: large;
+  color: var(--text-2);
+}
+
+h4 {
+  margin: 15px 0 15px 0;
+}
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.spec.ts b/src/app/components/creator/_dialogs/comment-export/comment-export.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e0df83fd5c0e5afcf5d765ad18859ef705b0df9e
--- /dev/null
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.spec.ts
@@ -0,0 +1,25 @@
+/** import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CommentExportComponent } from './comment-export.component';
+
+describe('CommentExportComponent', () => {
+  let component: CommentExportComponent;
+  let fixture: ComponentFixture<CommentExportComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ CommentExportComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CommentExportComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+}); */
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts b/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..468f3ce70874f21c831854bcf80d07e2bef13868
--- /dev/null
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts
@@ -0,0 +1,56 @@
+import { Component, OnInit } from '@angular/core';
+import { MatDialogRef } from '@angular/material';
+import { CommentCreatorPageComponent } from '../../comment-creator-page/comment-creator-page.component';
+import { Comment } from '../../../../models/comment';
+
+@Component({
+  selector: 'app-comment-export',
+  templateUrl: './comment-export.component.html',
+  styleUrls: ['./comment-export.component.scss']
+})
+export class CommentExportComponent implements OnInit {
+  comments: Comment[];
+  exportType = 'comma';
+
+  constructor(public dialogRef: MatDialogRef<CommentCreatorPageComponent>) { }
+
+  ngOnInit() {
+  }
+
+  onNoClick(): void {
+    this.dialogRef.close();
+  }
+
+  exportCsv(delimiter: string, date: string): void {
+    let csv: string;
+    let keyFields = '';
+    let valueFields = '';
+    keyFields = Object.keys(this.comments[0]).slice(3).join(delimiter) + '\r\n';
+    this.comments.forEach(element => {
+      element.body = '"' + element.body.replace(/[\r\n]/g, ' ').replace(/ +/g, ' ').replace(/"/g, '""') + '"';
+      valueFields += Object.values(element).slice(3).join(delimiter) + '\r\n';
+    });
+    csv = keyFields + valueFields;
+    const myBlob = new Blob([csv], { type: 'text/csv' });
+    const link = document.createElement('a');
+    const fileName = 'comments_' + date + '.csv';
+    link.setAttribute('download', fileName);
+    link.href = window.URL.createObjectURL(myBlob);
+    link.click();
+  }
+
+  onExport(exportType: string): void {
+    const date = new Date();
+    const dateString = date.getFullYear() + '_' + ('0' + (date.getMonth() + 1)).slice(-2) + '_' + ('0' + date.getDate()).slice(-2);
+    const timeString = ('0' + date.getHours()).slice(-2) + ('0' + date.getMinutes()).slice(-2) + ('0' + date.getSeconds()).slice(-2);
+    const timestamp = dateString + '_' + timeString;
+      if (exportType === 'comma') {
+        this.exportCsv(',', timestamp);
+        this.onNoClick();
+      }
+      if (exportType === 'semicolon') {
+        this.exportCsv(';', timestamp);
+        this.onNoClick();
+      }
+  }
+}
diff --git a/src/app/components/creator/_dialogs/content-edit/content-edit.component.html b/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
index fffc5e8954703c0bcf405519ecdfa192f62c0939..e12c461abd84156066c3fb6cfcb9db80d38e824c 100644
--- a/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
+++ b/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
@@ -1,16 +1,16 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="10px">
   <mat-form-field>
-    <input matInput [(ngModel)]="content.subject" maxlength="20" placeholder="{{'content.subject' | translate}}" name="subject"/>
+    <input matInput [(ngModel)]="content.subject" maxlength="40" placeholder="{{'content.subject' | translate}}" name="subject"/>
   </mat-form-field>
   <mat-form-field>
-    <textarea matInput [(ngModel)]="content.body" rows="3" maxlength="100" placeholder="{{'content.body' | translate}}" name="body"></textarea>
+    <textarea matInput [(ngModel)]="content.body" rows="3" maxlength="255" placeholder="{{'content.body' | translate}}" name="body"></textarea>
   </mat-form-field>
   <h4>{{'content.answers' | translate}}</h4>
   <mat-table [dataSource]="displayAnswers">
     <ng-container matColumnDef="label">
       <mat-cell *matCellDef="let answer">
         <mat-form-field class="input-block">
-          <input matInput [(ngModel)]="answer.answerOption.label" maxlength="20" name="answer"/>
+          <input matInput [(ngModel)]="answer.answerOption.label" maxlength="50" name="answer"/>
         </mat-form-field>
       </mat-cell>
     </ng-container>
diff --git a/src/app/components/creator/_dialogs/content-edit/content-edit.component.scss b/src/app/components/creator/_dialogs/content-edit/content-edit.component.scss
index eba525c7cf8ad283c44f83d34e8a1581b57b6a00..16599afe763f0c8876d09feff4a10ed9cc6a93e7 100644
--- a/src/app/components/creator/_dialogs/content-edit/content-edit.component.scss
+++ b/src/app/components/creator/_dialogs/content-edit/content-edit.component.scss
@@ -9,17 +9,17 @@ textarea {
 }
 
 mat-row {
-  background-color: #bbdefb;
-  border-color: #bbdefb;
+  background-color: var(--dialog);
+  border-color: var(--dialog);
 }
 
 h4 {
-  margin: 0px !important;
+  margin: 0 !important;
   padding-bottom: 10px;
-  color: #4db6ac;
+  color: var(--primary);
 }
 
 mat-cell {
-  padding-left: 0px!important;
+  padding-left: 0!important;
   padding-right: 10px!important;
 }
diff --git a/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts b/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
index b8ac7c16b6c2b5261e292993b0c826833693f6e1..35b03c1e74bb83be00061ddf184a92bc0a47c175 100644
--- a/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
+++ b/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
@@ -1,9 +1,6 @@
 import { Component, Inject, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
-import { NotificationService } from '../../../../services/util/notification.service';
 import { RoomCreateComponent } from '../../../shared/_dialogs/room-create/room-create.component';
-import { RoomService } from '../../../../services/http/room.service';
 import { Room } from '../../../../models/room';
 
 @Component({
@@ -14,10 +11,7 @@ import { Room } from '../../../../models/room';
 export class RoomDeleteComponent implements OnInit {
   room: Room;
 
-  constructor(private roomService: RoomService,
-              private router: Router,
-              private notification: NotificationService,
-              public dialogRef: MatDialogRef<RoomCreateComponent>,
+  constructor(              public dialogRef: MatDialogRef<RoomCreateComponent>,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
 
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
index fa34865c28a2ac1a03c5b8ef3fae8daad6634ad4..c32a98968be0287e5e98eab5f4897d06c0b1e8bb 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
@@ -1,17 +1,38 @@
 <div *ngIf="editRoom">
-  <mat-form-field class="input-block">
-    <input [(ngModel)]="editRoom.name" matInput placeholder="{{ 'session.session-name' | translate}}" name="room-name"/>
-  </mat-form-field>
-  <mat-form-field class="input-block">
-            <textarea [(ngModel)]="editRoom.description" matInput matTextareaAutosize
-                      matAutosizeMinRows="2" matAutosizeMaxRows="5" placeholder="{{ 'session.description' | translate}}" name="description">
-            </textarea>
-  </mat-form-field>
+  <mat-card class="header" fxLayoutAlign="center">
+    <mat-card-title class="title" fxLayoutAlign="center">{{'room-page.general' | translate}}</mat-card-title>
+  </mat-card>
+  <div fxLayout="column">
+    <mat-form-field class="input-block">
+      <input [(ngModel)]="editRoom.name" matInput placeholder="{{ 'session.session-name' | translate}}"
+             name="room-name"  maxlength="20"/>
+    </mat-form-field>
+    <mat-form-field class="input-block">
+              <textarea [(ngModel)]="editRoom.description" matInput matTextareaAutosize
+                        matAutosizeMinRows="2" matAutosizeMaxRows="5"  maxlength="255"
+                        placeholder="{{ 'session.description' | translate}}" name="description">
+              </textarea>
+    </mat-form-field>
+    <div fxLayoutAlign="center center">
+      <button mat-raised-button class="delete" (click)="openDeletionRoomDialog()"><mat-icon>delete</mat-icon>Session löschen</button>
+    </div>
+  </div>
+  <mat-card class="header" fxLayoutAlign="center">
+    <mat-card-title class="title" fxLayoutAlign="center">{{'room-page.comments' | translate}}</mat-card-title>
+  </mat-card>
+  <div  fxLayout="column">
+    <div fxLayout="row">
+      <h3>{{ 'room-page.threshold' | translate}}</h3>
+      <h3>{{commentThreshold | number}}</h3>
+    </div>
+      <mat-slider id="commentSlider" min="-50" max="50" step="1" value="0"
+                  color="accent" [(ngModel)]="commentThreshold" (input)="onSliderChange($event)"></mat-slider>
+  </div>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
     <button (click)="dialogRef.close('abort')" mat-button color="primary">
       {{ 'room-page.abort' | translate}}
     </button>
-    <button (click)="dialogRef.close('edit')" mat-raised-button color="primary">
+    <button (click)="dialogRef.close(commentThreshold)" mat-raised-button color="primary">
       {{ 'room-page.update' | translate}}
     </button>
   </div>
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss b/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1c5d943580c400870d05205f57d0d87c9c23b4c2 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
@@ -0,0 +1,26 @@
+@import '../../../../../styles';
+
+.header {
+  background-color: mat-color($arsnova-primary,200);
+  margin: 0 0 10px 0;
+}
+
+.title {
+  // color: ;
+}
+
+#commentSlider {
+  width: 100%;
+}
+
+.delete {
+  margin-bottom: 20px;
+  min-width: 170px;
+  width: 60%;
+  background-color: mat-color($arsnova-warn,300);
+}
+
+mat-icon {
+  margin-right: 10px;
+}
+
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
index b9f3a3cb7a3c503f529ce55bd20a3132be975df7..e4f337a0341eddf7dd431977a8601806250f17d2 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
@@ -1,7 +1,12 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { Room } from '../../../../models/room';
 import { RoomCreateComponent } from '../../../shared/_dialogs/room-create/room-create.component';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
+import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material';
+import { RoomDeleteComponent } from '../room-delete/room-delete.component';
+import { NotificationService } from '../../../../services/util/notification.service';
+import { TranslateService } from '@ngx-translate/core';
+import { RoomService } from '../../../../services/http/room.service';
+import { Router } from '@angular/router';
 
 @Component({
   selector: 'app-room-edit',
@@ -10,15 +15,56 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 })
 export class RoomEditComponent implements OnInit {
   editRoom: Room;
+  commentThreshold: number;
 
   constructor(public dialogRef: MatDialogRef<RoomCreateComponent>,
+              public dialog: MatDialog,
+              public notificationService: NotificationService,
+              public translationService: TranslateService,
+              protected roomService: RoomService,
+              public router: Router,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
 
-  onNoClick(): void {
+  ngOnInit() {
+    if (this.editRoom.extensions['comments'].commentThreshold != null) {
+      this.commentThreshold = this.editRoom.extensions['comments'].commentThreshold;
+    } else {
+      this.commentThreshold = -10;
+    }
+  }
+
+  onSliderChange(event: any) {
+    if (event.value) {
+      this.commentThreshold = event.value;
+    } else {
+      this.commentThreshold = 0;
+    }
+  }
+
+  openDeletionRoomDialog(): void {
+    const dialogRef = this.dialog.open(RoomDeleteComponent, {
+      width: '400px'
+    });
+    dialogRef.componentInstance.room = this.editRoom;
+    dialogRef.afterClosed()
+      .subscribe(result => {
+        this.confirmDeletion(result);
+      });
+  }
+
+  deleteRoom(room: Room): void {
+    this.translationService.get('room-page.deleted').subscribe(msg => {
+      this.notificationService.show(room.name + msg);
+    });
+    this.roomService.deleteRoom(room.id).subscribe();
     this.dialogRef.close();
+    this.router.navigate([`/creator`]);
   }
 
-  ngOnInit() {
+  confirmDeletion(dialogAnswer: string): void {
+    if (dialogAnswer === 'delete') {
+      this.deleteRoom(this.editRoom);
+    }
   }
 }
diff --git a/src/app/components/creator/comment-creator-page/comment-creator-page.component.html b/src/app/components/creator/comment-creator-page/comment-creator-page.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..2445a6fcae34f3159b6597b46220b8fe37935acc
--- /dev/null
+++ b/src/app/components/creator/comment-creator-page/comment-creator-page.component.html
@@ -0,0 +1 @@
+<app-comment-page></app-comment-page>
diff --git a/src/app/components/creator/comment-creator-page/comment-creator-page.component.scss b/src/app/components/creator/comment-creator-page/comment-creator-page.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/app/components/creator/comment-creator-page/comment-creator-page.component.spec.ts b/src/app/components/creator/comment-creator-page/comment-creator-page.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..de0a3aef6dc4dfda982d534c827258d562a082c9
--- /dev/null
+++ b/src/app/components/creator/comment-creator-page/comment-creator-page.component.spec.ts
@@ -0,0 +1,26 @@
+/* import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CommentCreatorPageComponent } from './comment-creator-page.component';
+
+describe('CommentCreatorPageComponent', () => {
+  let component: CommentCreatorPageComponent;
+  let fixture: ComponentFixture<CommentCreatorPageComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ CommentCreatorPageComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CommentCreatorPageComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/components/creator/comment-creator-page/comment-creator-page.component.ts b/src/app/components/creator/comment-creator-page/comment-creator-page.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c971df4b4cd2023e25c5ecdf17eab19b848b2146
--- /dev/null
+++ b/src/app/components/creator/comment-creator-page/comment-creator-page.component.ts
@@ -0,0 +1,14 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-comment-creator-page',
+  templateUrl: './comment-creator-page.component.html',
+  styleUrls: ['./comment-creator-page.component.scss']
+})
+export class CommentCreatorPageComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+}
diff --git a/src/app/components/creator/content-choice-creator/content-choice-creator.component.html b/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
index 4b6a7d1d8255775f177e1914a3b6c85265f85031..d0c3bef729c69f04e798c2b4272084c65b1a7276 100644
--- a/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
+++ b/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
@@ -13,7 +13,7 @@
     <ng-container matColumnDef="label">
       <mat-header-cell *matHeaderCellDef>{{ 'content.answer' | translate }}</mat-header-cell>
       <mat-cell *matCellDef="let answer">
-        <mat-checkbox color="primary" (click)="switchValue(answer.answerOption.label)" [(ngModel)]="answer.correct"
+        <mat-checkbox (click)="switchValue(answer.answerOption.label)" [(ngModel)]="answer.correct"
                       [checked]="answer.correct"
                       name="{{ answer.answerOption.label }}">{{ answer.answerOption.label }}
         </mat-checkbox>
diff --git a/src/app/components/creator/content-choice-creator/content-choice-creator.component.scss b/src/app/components/creator/content-choice-creator/content-choice-creator.component.scss
index 4d0f4e714bbecf2a8716814d8f3add41351e36b3..3d1670d1e84db9ddaee4cdd9f4a0d8ae5ccda756 100644
--- a/src/app/components/creator/content-choice-creator/content-choice-creator.component.scss
+++ b/src/app/components/creator/content-choice-creator/content-choice-creator.component.scss
@@ -3,11 +3,15 @@ form > button {
 }
 
 mat-header-cell {
-  background-color: #ffe0b2;
+  background-color: var(--background-2);
 }
 
 mat-row {
-  background-color: #ffecb3;
+  background-color: var(--primary);
+}
+
+.mat-checkbox {
+  color: var(--text-3) !important;
 }
 
 .addIcon {
diff --git a/src/app/components/creator/content-creator/content-creator.component.html b/src/app/components/creator/content-creator/content-creator.component.html
index 407b840e6c9cf2cf3acbf0c07b2795914fa95fbd..56fdf8efb5fe229fb1a4af4e43d890f1fb118476 100644
--- a/src/app/components/creator/content-creator/content-creator.component.html
+++ b/src/app/components/creator/content-creator/content-creator.component.html
@@ -1,11 +1,11 @@
 <form>
 <mat-form-field class="input-block">
   <input matInput #subject [(ngModel)]="content.subject" placeholder="{{'content.subject' | translate}}" name="subject"
-  maxlength="20">
+  maxlength="40">
 </mat-form-field>
 <mat-form-field class="input-block">
     <textarea matInput #body [(ngModel)]="content.body" placeholder="{{'content.body' | translate}}" name="body"
-              matTextareaAutosize matAutosizeMinRows="3" matAutosizeMaxRows="8" maxlength="100"></textarea>
+              matTextareaAutosize matAutosizeMinRows="3" matAutosizeMaxRows="8" maxlength="255"></textarea>
 </mat-form-field>
 <mat-form-field>
   <input matInput #group [formControl]="myControl" [matAutocomplete]="auto"
diff --git a/src/app/components/creator/content-likert-creator/content-likert-creator.component.scss b/src/app/components/creator/content-likert-creator/content-likert-creator.component.scss
index 3d0e678f5ec7ef58ad3ce0c18847c8e32c158072..ccd1c0a31b7626c17023705cfc44d7a7252d025a 100644
--- a/src/app/components/creator/content-likert-creator/content-likert-creator.component.scss
+++ b/src/app/components/creator/content-likert-creator/content-likert-creator.component.scss
@@ -3,9 +3,9 @@ form > button {
 }
 
 mat-header-cell {
-  background-color: #ffe0b2;
+  background-color: var(--background-2);
 }
 
 mat-cell {
-  background-color: #ffecb3;
+  background-color: var(--primary);
 }
diff --git a/src/app/components/creator/content-list/content-list.component.html b/src/app/components/creator/content-list/content-list.component.html
index 933c5089885f0712fb93a5f8726a94d504fd2b19..058925e146d34a131d3e10c98d76b5409a4c7422 100644
--- a/src/app/components/creator/content-list/content-list.component.html
+++ b/src/app/components/creator/content-list/content-list.component.html
@@ -13,32 +13,32 @@
     </div>
     <mat-grid-list cols="3" rowHeight="1:1">
       <mat-grid-tile>
-        <button class="actionButton" mat-icon-button color="primary"
-                matTooltip="{{ 'room-page.create-content' | translate}}"
+        <button class="actionButton" mat-icon-button
                 routerLink="/creator/room/{{ roomId }}/create-content">
           <mat-icon class="actionIcon">note_add</mat-icon>
+          <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
         </button>
       </mat-grid-tile>
       <mat-grid-tile>
-        <button class="actionButton" mat-icon-button color="primary"
-                matTooltip="{{ 'room-page.present' | translate}}"
+        <button class="actionButton" mat-icon-button
                 routerLink="/creator/room/{{ roomId }}/{{ contentGroup.name }}/presentation">
           <mat-icon class="actionIcon">school</mat-icon>
+          <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.present' | translate}}</h3>
         </button>
       </mat-grid-tile>
       <mat-grid-tile>
-        <button class="actionButton" mat-icon-button color="primary"
-                matTooltip="{{ 'room-page.answer-statistics' | translate}}"
+        <button class="actionButton" mat-icon-button
                 routerLink="/creator/room/{{ roomId }}/statistics">
           <mat-icon class="actionIcon">insert_chart</mat-icon>
+          <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.answer-statistics' | translate}}</h3>
         </button>
       </mat-grid-tile>
     </mat-grid-list>
     <mat-divider></mat-divider>
     <mat-card-content>
-      <mat-expansion-panel *ngFor="let content of contents; index as i">
-        <mat-expansion-panel-header>
-          <mat-panel-title>
+      <mat-expansion-panel *ngFor="let content of contents; index as i" class="matPanel">
+        <mat-expansion-panel-header class="matPanelListHeader">
+          <mat-panel-title class="panelTitle">
               {{ labels[i] }}
           </mat-panel-title>
           <button mat-icon-button color="accent" (click)="editContent(content);$event.stopPropagation();"
@@ -50,7 +50,7 @@
             <mat-icon>delete_forever</mat-icon>
           </button>
         </mat-expansion-panel-header>
-        <mat-panel-description>
+        <mat-panel-description class="panelTitle">
           {{ content.body }}
         </mat-panel-description>
       </mat-expansion-panel>
diff --git a/src/app/components/creator/content-list/content-list.component.scss b/src/app/components/creator/content-list/content-list.component.scss
index d814020384c6cfdada1e8d55d5058ed72a1b73a1..a452212da4e80ea1c573a680500910a7666e978b 100644
--- a/src/app/components/creator/content-list/content-list.component.scss
+++ b/src/app/components/creator/content-list/content-list.component.scss
@@ -1,7 +1,7 @@
 mat-card {
   width: 800px;
   max-width: 90%;
-  background-color: #fff8e1;
+  background-color: var(--card)!important;
 }
 
 mat-card-content > :first-child {
@@ -9,7 +9,7 @@ mat-card-content > :first-child {
 }
 
 mat-expansion-panel {
-  background-color: #bbdefb;
+  background-color: var(--background-2);
   margin-bottom: 5px;
 }
 
@@ -21,23 +21,34 @@ mat-panel-title {
 }
 
 mat-expansion-panel-header {
-  background-color: #bbdefb !important;
+  background-color: var(--background-2) !important;
   padding-left: 3%;
   padding-right: 3%;
+  word-break: break-all;
 }
 
-.mat-expansion-panel-header-title {
-  word-break: break-all;
+.matPanel {
+  background-color: var(--background-2);
+  margin-bottom: 5px;
+  color: black!important;
+}
+
+.panelTitle {
+  width: 8% !important;
+  color: black !important;
 }
 
 h2 {
   font-size: larger;
+  color: black !important;
 }
 
 .actionButton {
   width: 75%;
   height: 75%;
   margin: 5px;
+  transition: all 0.5s;
+  color: var(--primary)!important;
 
   &:hover {
     transform: scale(1.25)
diff --git a/src/app/components/creator/content-list/content-list.component.ts b/src/app/components/creator/content-list/content-list.component.ts
index 61e01725e902a58cbf92bc1b10c781608d56f32d..53651c3b8e24cc80707750d6cc2da2455efc6ac9 100644
--- a/src/app/components/creator/content-list/content-list.component.ts
+++ b/src/app/components/creator/content-list/content-list.component.ts
@@ -15,8 +15,6 @@ import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
 import { ContentDeleteComponent } from '../_dialogs/content-delete/content-delete.component';
 import { ContentEditComponent } from '../_dialogs/content-edit/content-edit.component';
-import { InnerSubscriber } from 'rxjs/internal/InnerSubscriber';
-
 
 @Component({
   selector: 'app-content-list',
@@ -28,24 +26,16 @@ import { InnerSubscriber } from 'rxjs/internal/InnerSubscriber';
 export class ContentListComponent implements OnInit {
 
   contents: Content[];
-
   contentBackup: Content;
-
   contentCBackup: ContentChoice;
-
   roomId: string;
-
   contentGroup: ContentGroup;
-
   room: Room;
-
   isLoading = true;
-
   collectionName: string;
-
   labelMaxLength: number;
-
   labels: string[] = [];
+  deviceType = localStorage.getItem('deviceType');
 
   constructor(private contentService: ContentService,
               private roomService: RoomService,
diff --git a/src/app/components/creator/content-presentation/content-presentation.component.scss b/src/app/components/creator/content-presentation/content-presentation.component.scss
index 8b0580e3b3bca45d557bc0bbf884d70074a25fbd..902425126609477610d0dedb98d7da6cac7e1671 100644
--- a/src/app/components/creator/content-presentation/content-presentation.component.scss
+++ b/src/app/components/creator/content-presentation/content-presentation.component.scss
@@ -11,12 +11,12 @@ mat-card {
   width: 800px;
   max-width: 90%;
   margin-top: 20px;
-  background-color: #fff8e1;
+  background-color: var(--card);
 }
 
 h3 {
   font-size: 150%;
-  color: #26a69a;
+  color: var(--text-3);
 }
 
 h4 {
diff --git a/src/app/components/creator/creator-routing.module.ts b/src/app/components/creator/creator-routing.module.ts
index 8f5d6276a24767d2f2014ce5da03d676aea7db51..37cc87063de37571aba54ebc76be84f41371afa9 100644
--- a/src/app/components/creator/creator-routing.module.ts
+++ b/src/app/components/creator/creator-routing.module.ts
@@ -6,11 +6,11 @@ import { UserRole } from '../../models/user-roles.enum';
 import { RoomCreatorPageComponent } from './room-creator-page/room-creator-page.component';
 import { ContentCreatePageComponent } from './content-create-page/content-create-page.component';
 import { StatisticsPageComponent } from '../shared/statistics-page/statistics-page.component';
-import { CommentListComponent } from '../shared/comment-list/comment-list.component';
 import { FeedbackBarometerPageComponent } from '../shared/feedback-barometer-page/feedback-barometer-page.component';
 import { ContentListComponent } from './content-list/content-list.component';
 import { StatisticComponent } from '../shared/statistic/statistic.component';
 import { ContentPresentationComponent } from './content-presentation/content-presentation.component';
+import { CommentCreatorPageComponent } from './comment-creator-page/comment-creator-page.component';
 
 const routes: Routes = [
   {
@@ -45,7 +45,7 @@ const routes: Routes = [
   },
   {
     path: 'room/:roomId/comments',
-    component: CommentListComponent,
+    component: CommentCreatorPageComponent,
     canActivate: [AuthenticationGuard],
     data: { roles: [UserRole.CREATOR] }
   },
diff --git a/src/app/components/creator/creator.module.ts b/src/app/components/creator/creator.module.ts
index bd0dce86a7b46517d424cac55f2982c658200d84..5707a9ddd352e3e396d204340ccf13bdbf7a0823 100644
--- a/src/app/components/creator/creator.module.ts
+++ b/src/app/components/creator/creator.module.ts
@@ -21,6 +21,8 @@ import { ContentCreatorComponent } from './content-creator/content-creator.compo
 import { ContentListComponent } from './content-list/content-list.component';
 import { ContentEditComponent } from './_dialogs/content-edit/content-edit.component';
 import { ContentPresentationComponent } from './content-presentation/content-presentation.component';
+import { CommentCreatorPageComponent } from './comment-creator-page/comment-creator-page.component';
+import { CommentExportComponent } from './_dialogs/comment-export/comment-export.component';
 
 @NgModule({
   imports: [
@@ -50,7 +52,9 @@ import { ContentPresentationComponent } from './content-presentation/content-pre
     ContentCreatorComponent,
     ContentListComponent,
     ContentEditComponent,
-    ContentPresentationComponent
+    ContentPresentationComponent,
+    CommentCreatorPageComponent,
+    CommentExportComponent
   ],
   entryComponents: [
     RoomDeleteComponent,
@@ -61,7 +65,8 @@ import { ContentPresentationComponent } from './content-presentation/content-pre
     ContentLikertCreatorComponent,
     ContentTextCreatorComponent,
     ContentYesNoCreatorComponent,
-    ContentEditComponent
+    ContentEditComponent,
+    CommentExportComponent
   ]
 })
 export class CreatorModule {
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html b/src/app/components/creator/room-creator-page/room-creator-page.component.html
index 747df67543f8cddae2d7741063a5dff44764012a..142c359d1bc993373332181165ebcbba46631165 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.html
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html
@@ -2,18 +2,25 @@
   <div fxLayout="row" fxLayoutAlign="center">
     <mat-progress-spinner *ngIf="isLoading" color="accent" mode="indeterminate"></mat-progress-spinner>
     <mat-card *ngIf="room">
-      <mat-card-header fxLayoutAlign="center">
-        <mat-card-title fxLayoutAlign="center">
-          <h2>{{ room.name }}</h2>
-        </mat-card-title>
-        <mat-card-subtitle fxLayoutAlign="center">
-          <h3>
-            {{ room.shortId.slice(0,4) }} {{  room.shortId.slice(4,8) }}
-          </h3>
-        </mat-card-subtitle>
-      </mat-card-header>
+      <div fxLayout="row">
+        <span class="fill-remaining-space"></span>
+        <mat-card-header fxLayoutAlign="center" fxLayout="row">
+          <mat-card-title fxLayoutAlign="center">
+            <h2>{{ room.name }}</h2>
+          </mat-card-title>
+          <mat-card-subtitle fxLayoutAlign="center">
+            <h3>
+              {{ room.shortId.slice(0, 4) }} {{  room.shortId.slice(4, 8) }}
+            </h3>
+          </mat-card-subtitle>
+        </mat-card-header>
+        <span class="fill-remaining-space"></span>
+        <button mat-icon-button id="settings" (click)="showEditDialog()">
+          <mat-icon id="settings-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon>
+        </button>
+      </div>
       <mat-divider></mat-divider>
-      <mat-card-content fxLayoutAlign="center">
+      <mat-card-content id="description" fxLayoutAlign="center">
         <mat-expansion-panel *ngIf="!(room.description == '')" class="mat-elevation-z0">
           <mat-expansion-panel-header>
             <h4>{{ 'room-page.description' | translate }}</h4>
@@ -23,44 +30,35 @@
           </p>
         </mat-expansion-panel>
       </mat-card-content>
-      <mat-grid-list cols="3" rowHeight="2:1">
+      <mat-grid-list cols="2" rowHeight="2:1">
         <mat-grid-tile colspan="1" rowspan="1">
-        <button mat-icon-button color="primary" matTooltip="{{ 'room-page.create-content' | translate}}"
-                routerLink="/creator/room/{{ room.shortId }}/create-content">
-          <mat-icon>note_add</mat-icon>
-        </button>
+          <button mat-icon-button
+                  routerLink="/creator/room/{{ room.shortId }}/create-content">
+            <mat-icon>note_add</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
+          </button>
         </mat-grid-tile>
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.comments' | translate}}"
+          <button mat-icon-button
                   routerLink="/creator/room/{{ room.shortId }}/comments">
             <mat-icon>question_answer</mat-icon>
-          </button>
-        </mat-grid-tile>
-        <mat-grid-tile>
-          <button mat-icon-button *ngIf="!modify" (click)="showEditDialog()" color="accent"
-                  matTooltip="{{ 'room-page.edit-room' | translate}}">
-            <mat-icon>create</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.comments' | translate}}</h3>
           </button>
         </mat-grid-tile>
       </mat-grid-list>
-      <mat-grid-list cols="3" rowHeight="2:1">
-        <mat-grid-tile>
-         <button mat-icon-button color="primary" matTooltip="{{ 'room-page.answer-statistics' | translate}}"
-                 routerLink="/creator/room/{{ room.shortId }}/statistics">
-           <mat-icon>insert_chart</mat-icon>
-         </button>
-        </mat-grid-tile>
+      <mat-grid-list cols="2" rowHeight="2:1">
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.live-feedback' | translate}}"
-                  routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
-            <mat-icon class="smallerIcon">thumbs_up_down</mat-icon>
+          <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/statistics">
+            <mat-icon>insert_chart</mat-icon>
+           <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.answer-statistics' | translate}}</h3>
           </button>
         </mat-grid-tile>
         <mat-grid-tile>
-        <button mat-icon-button color="warn" (click)="openDeletionRoomDialog()"
-                matTooltip="{{ 'room-page.delete-room' | translate}}">
-          <mat-icon>delete_forever</mat-icon>
-        </button>
+          <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
+            <mat-icon class="smallerIcon">thumbs_up_down
+            </mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3>
+          </button>
         </mat-grid-tile>
       </mat-grid-list>
       <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups>
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
index 9a4764ae3219972403b5a0a0d49934c0ef28c035..c506cd16b80a223ca4fb96ee1335b106a7d2be4b 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.scss
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
@@ -2,7 +2,7 @@
 
 mat-card {
   width: 800px;
-  background-color: #fff8e1 !important;
+  background-color: var(--card)!important;
 }
 
 mat-card-content > :first-child {
@@ -12,15 +12,32 @@ mat-card-content > :first-child {
 
 button {
   width: 30%;
+  transition: all 0.3s;
   &:hover {
     transform: scale(1.25)
   }
 }
 
+#description {
+  margin-bottom: 0;
+}
+
 .mat-icon-button {
   width: 75%;
   height: 75%;
   margin-bottom: 20px;
+  color: var(--primary)!important;
+}
+
+#settings {
+  width: 10%;
+  max-width: 40px;
+}
+
+#settings-icon {
+  font-size: 35px;
+  height: 35px;
+  width: 35px;
 }
 
 mat-icon {
@@ -40,19 +57,22 @@ mat-tooltip-component {
 
 p {
   font-size: medium;
+  color: var(--text-2)!important;
 }
 
+h2 {
+   font-size: large;
+   color: var(--text-1)!important;
+ }
+
 h3 {
   font-size: larger;
+  color: var(--text-3)!important;
 }
 
 h4 {
   font-size: medium;
-  color: mat-color($arsnova-primary, 300);
-}
-
-h2 {
-  font-size: large;
+  color: var(--text-1)!important;
 }
 
 mat-card-header {
@@ -73,6 +93,6 @@ mat-grid-tile {
 }
 
 mat-expansion-panel {
-  background-color: #fff8e1!important;
+  background-color: var(--card)!important;
   min-width: 200px;
 }
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.ts b/src/app/components/creator/room-creator-page/room-creator-page.component.ts
index 0d6a23fbb87b0e1846891aed117241960511fc75..8f85d6e2819bd1e0c2de5eacfc0c5bc323652d3d 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.ts
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.ts
@@ -6,10 +6,10 @@ import { Room } from '../../../models/room';
 import { Location } from '@angular/common';
 import { NotificationService } from '../../../services/util/notification.service';
 import { MatDialog } from '@angular/material';
-import { RoomDeleteComponent } from '../_dialogs/room-delete/room-delete.component';
 import { RoomEditComponent } from '../_dialogs/room-edit/room-edit.component';
 import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
+import { TSMap } from 'typescript-map';
 
 @Component({
   selector: 'app-room-creator-page',
@@ -19,6 +19,9 @@ import { LanguageService } from '../../../services/util/language.service';
 export class RoomCreatorPageComponent extends RoomPageComponent implements OnInit {
   room: Room;
   updRoom: Room;
+  commentThreshold: number;
+  updCommentThreshold: number;
+  deviceType = localStorage.getItem('deviceType');
 
   constructor(protected roomService: RoomService,
               protected notification: NotificationService,
@@ -39,65 +42,41 @@ export class RoomCreatorPageComponent extends RoomPageComponent implements OnIni
     });
   }
 
-  /* TODO: i18n */
-
-  updateRoom(): void {
-    if ((this.updRoom.name === this.room.name) &&
-      (this.updRoom.description === this.room.description)
-    ) {
-      this.notification.show('There were no changes');
-      return;
-    } else {
-      this.room.name = this.updRoom.name;
-      this.room.description = this.updRoom.description;
-      this.roomService.updateRoom(this.room)
-        .subscribe(() => {
-          this.notification.show('Changes are made');
-        });
-    }
-  }
-
-  deleteRoom(room: Room): void {
-    const msg = room.name + ' deleted';
-    this.notification.show(msg);
-    this.delete(room);
-  }
-
-  confirmDeletion(dialogAnswer: string): void {
-    if (dialogAnswer === 'delete') {
-      this.deleteRoom(this.room);
+  updateRoom(threshold: number): void {
+    this.room.name = this.updRoom.name;
+    this.room.description = this.updRoom.description;
+    if (threshold > -50) {
+      const commentExtension: TSMap<string, any> = new TSMap();
+      commentExtension.set('commentThreshold', threshold);
+      this.room.extensions = new TSMap();
+      this.room.extensions.set('comments', commentExtension);
     }
-  }
-
-  openDeletionRoomDialog(): void {
-    const dialogRef = this.dialog.open(RoomDeleteComponent, {
-      width: '400px'
-    });
-    dialogRef.componentInstance.room = this.room;
-    dialogRef.afterClosed()
-      .subscribe(result => {
-        this.confirmDeletion(result);
+    this.roomService.updateRoom(this.room)
+      .subscribe(() => {
+        this.translateService.get('room-page.changes-successful').subscribe(msg => {
+          this.notification.show(msg);
+        });
       });
   }
 
   showEditDialog(): void {
-    this.updRoom = new Room();
-    this.updRoom.name = this.room.name;
-    this.updRoom.shortId = this.room.shortId;
-    this.updRoom.description = this.room.description;
+    this.updRoom = this.room;
     const dialogRef = this.dialog.open(RoomEditComponent, {
       width: '400px'
     });
     dialogRef.componentInstance.editRoom = this.updRoom;
+    dialogRef.componentInstance.commentThreshold = this.updCommentThreshold;
     dialogRef.afterClosed()
       .subscribe(result => {
         if (result === 'abort') {
           return;
-        }
-        if (result === 'edit') {
-          this.updateRoom();
+        } else {
+          this.updateRoom(+result);
         }
       });
+    dialogRef.backdropClick().subscribe( res => {
+        dialogRef.close('abort');
+    });
   }
 }
 
diff --git a/src/app/components/home/home-page/home-page.component.html b/src/app/components/home/home-page/home-page.component.html
index e829c2b878c952b04e2258df948f295bd6b89d8c..43bf206c84fd77c89cbd7424fcf921c982492c2a 100644
--- a/src/app/components/home/home-page/home-page.component.html
+++ b/src/app/components/home/home-page/home-page.component.html
@@ -1,5 +1,5 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
-  <div fxLayout="row" fxLayoutAlign="center" *ngIf="mobile === true">
+  <div fxLayout="row" fxLayoutAlign="center" *ngIf="deviceType === 'mobile'">
     <h1>
       <span class="main-heading-secondary">{{ 'login-page.welcome' | translate }}</span>
       <span class="main-heading-primary">ARSnova</span>
@@ -8,7 +8,7 @@
   <div fxLayout="row" fxLayoutAlign="center">
     <mat-card class="outer">
       <mat-card-content>
-      <mat-card-header *ngIf="mobile === false">
+      <mat-card-header *ngIf="deviceType === 'desktop'">
         <mat-card-title>
             <h1>
                 <span class="main-heading-secondary">{{ 'login-page.welcome' | translate }}</span>
diff --git a/src/app/components/home/home-page/home-page.component.scss b/src/app/components/home/home-page/home-page.component.scss
index 91512460d0dcf1beb2bfafef6922d91b00a76b9f..0ec3f5d386b4621115912f4c65c3dc99a2e930cd 100644
--- a/src/app/components/home/home-page/home-page.component.scss
+++ b/src/app/components/home/home-page/home-page.component.scss
@@ -3,7 +3,7 @@
 .outer {
   width: 90%;
   max-width: 500px;
-  background-color: #bbdefb;
+  background-color: var(--background-2);
 }
 
 .main-heading-primary {
diff --git a/src/app/components/home/home-page/home-page.component.ts b/src/app/components/home/home-page/home-page.component.ts
index eec655fa3ea823dfbd746378b02d76df1eb5bd9f..89a824fdc48ef59a6a164d0f75b50ef749f803a3 100644
--- a/src/app/components/home/home-page/home-page.component.ts
+++ b/src/app/components/home/home-page/home-page.component.ts
@@ -7,13 +7,18 @@ import { Component, OnInit } from '@angular/core';
 })
 export class HomePageComponent implements OnInit {
 
-  mobile = true;
+  deviceType: string;
 
-  constructor() { }
+  constructor() {
+  }
 
   ngOnInit() {
-    if (window.innerWidth > 500) {
-      this.mobile = false;
+    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
+      localStorage.setItem('deviceType', 'mobile');
+      this.deviceType = 'mobile';
+    } else {
+      localStorage.setItem('deviceType', 'desktop');
+      this.deviceType = 'desktop';
     }
   }
 
diff --git a/src/app/components/home/new-landing/new-landing.component.html b/src/app/components/home/new-landing/new-landing.component.html
index dcc8cccfa0965626cfdc1ca5d3693aeac7547948..c9731f48b29f9ceacb142897bd697ab8ba205579 100644
--- a/src/app/components/home/new-landing/new-landing.component.html
+++ b/src/app/components/home/new-landing/new-landing.component.html
@@ -1,6 +1,6 @@
 <div fxLayout="column" fxLayoutAlign="center center" fxlayoutgap="20px" fxFill>
     <app-room-join></app-room-join>
-    <button mat-fab class="fab-extended" color="primary" (click)="createSession()">
+    <button mat-fab class="fab-extended" (click)="createSession()">
       <mat-icon class="add">add</mat-icon>
       {{'home-page.create-session' | translate}}
     </button>
diff --git a/src/app/components/home/new-landing/new-landing.component.scss b/src/app/components/home/new-landing/new-landing.component.scss
index f43f1a749630219f8dcf7c61dfa990d6f411a158..fd55c4f7441d4854591dbbe94cf32b898dd920f9 100644
--- a/src/app/components/home/new-landing/new-landing.component.scss
+++ b/src/app/components/home/new-landing/new-landing.component.scss
@@ -4,6 +4,7 @@
   border-radius: 32px;
   margin-bottom: 5%;
   font-size: large;
+  background-color: var(--primary);
 }
 
 .add {
diff --git a/src/app/components/participant/comment-create-page/comment-create-page.component.html b/src/app/components/participant/comment-create-page/comment-create-page.component.html
deleted file mode 100644
index 4bdc50978f522844bca28d93af97edeed725aff2..0000000000000000000000000000000000000000
--- a/src/app/components/participant/comment-create-page/comment-create-page.component.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
-  <div fxLayout="row" fxLayoutAlign="center">
-    <form>
-      <mat-form-field class="input-block">
-        <input matInput #commentSubject type="text" maxlength="24" placeholder="{{ 'comment-page.enter-title' | translate}}">
-      </mat-form-field>
-      <mat-form-field class="input-block">
-        <input matInput #commentBody>
-        <textarea matInput></textarea>
-      </mat-form-field>
-      <button mat-raised-button color="primary" (click)="goBack()">{{ 'comment-page.back' | translate}}</button>
-      <button mat-raised-button color="accent" (click)="send(commentSubject.value, commentBody.value)">{{ 'comment-page.send' | translate}}</button>
-    </form>
-  </div>
-  <div fxLayout="row" fxLayoutAlign="center">
-    <app-comment-list></app-comment-list>
-  </div>
-</div>
-
diff --git a/src/app/components/participant/comment-create-page/comment-create-page.component.ts b/src/app/components/participant/comment-create-page/comment-create-page.component.ts
deleted file mode 100644
index 9dafaa1af7882b5a6005f7ea8772ab4ae0188a45..0000000000000000000000000000000000000000
--- a/src/app/components/participant/comment-create-page/comment-create-page.component.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { ActivatedRoute } from '@angular/router';
-import { Location } from '@angular/common';
-import { Comment } from '../../../models/comment';
-import { RoomService } from '../../../services/http/room.service';
-import { CommentService } from '../../../services/http/comment.service';
-import { NotificationService } from '../../../services/util/notification.service';
-import { AuthenticationService } from '../../../services/http/authentication.service';
-import { User } from '../../../models/user';
-import { CommentListComponent } from '../../shared/comment-list/comment-list.component';
-
-@Component({
-  selector: 'app-comment-create-page',
-  templateUrl: './comment-create-page.component.html',
-  styleUrls: ['./comment-create-page.component.scss']
-})
-export class CommentCreatePageComponent implements OnInit {
-  @ViewChild(CommentListComponent) child: CommentListComponent;
-  roomId: string;
-  roomShortId: string;
-  user: User;
-  private date = new Date(Date.now());
-
-  constructor(
-    protected authenticationService: AuthenticationService,
-    private route: ActivatedRoute,
-    private roomService: RoomService,
-    private commentService: CommentService,
-    private location: Location,
-    private notification: NotificationService) { }
-
-  ngOnInit(): void {
-    this.user = this.authenticationService.getUser();
-    this.roomShortId = this.route.snapshot.paramMap.get('roomId');
-    this.roomId = localStorage.getItem(`roomId`);
-  }
-
-  // TODO: check if empty
-
-  send(subject: string, body: string): void {
-    subject = subject.trim();
-    body = body.trim();
-    if (!subject || !body) {
-      return;
-    }
-    this.commentService.addComment({
-      id: '',
-      roomId: this.roomId,
-      userId: this.user.id,
-      subject: subject,
-      body: body,
-      creationTimestamp: this.date.getTime(),
-      read: false,
-      revision: ''
-    } as Comment).subscribe(() => {
-      this.child.getComments();
-      this.notification.show(`Comment '${subject}' successfully created.`);
-      this.goBack();
-    });
-  }
-
-  goBack(): void {
-    this.location.back();
-  }
-}
diff --git a/src/app/components/participant/comment-participant-page/comment-participant-page.component.html b/src/app/components/participant/comment-participant-page/comment-participant-page.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..2445a6fcae34f3159b6597b46220b8fe37935acc
--- /dev/null
+++ b/src/app/components/participant/comment-participant-page/comment-participant-page.component.html
@@ -0,0 +1 @@
+<app-comment-page></app-comment-page>
diff --git a/src/app/components/participant/comment-participant-page/comment-participant-page.component.scss b/src/app/components/participant/comment-participant-page/comment-participant-page.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/app/components/participant/comment-participant-page/comment-participant-page.component.spec.ts b/src/app/components/participant/comment-participant-page/comment-participant-page.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6287f88a12f29bf8718cfa17ad8ef9dc0ea7b490
--- /dev/null
+++ b/src/app/components/participant/comment-participant-page/comment-participant-page.component.spec.ts
@@ -0,0 +1,27 @@
+/*
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CommentParticipantPageComponent } from './comment-participant-page.component';
+
+describe('CommentParticipantPageComponent', () => {
+  let component: CommentParticipantPageComponent;
+  let fixture: ComponentFixture<CommentParticipantPageComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ CommentParticipantPageComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CommentParticipantPageComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/components/participant/comment-participant-page/comment-participant-page.component.ts b/src/app/components/participant/comment-participant-page/comment-participant-page.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e652a59ef795450533ed4f834ce437bfe4545ee8
--- /dev/null
+++ b/src/app/components/participant/comment-participant-page/comment-participant-page.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-comment-participant-page',
+  templateUrl: './comment-participant-page.component.html',
+  styleUrls: ['./comment-participant-page.component.scss']
+})
+export class CommentParticipantPageComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
diff --git a/src/app/components/participant/participant-routing.module.ts b/src/app/components/participant/participant-routing.module.ts
index b4b33c4e59fc1066fbfb6dae8a08a82d82ccb22b..1b6054cae8add874cad84fa73b8b247118b9549c 100644
--- a/src/app/components/participant/participant-routing.module.ts
+++ b/src/app/components/participant/participant-routing.module.ts
@@ -4,11 +4,11 @@ import { HomeParticipantPageComponent } from './home-participant-page/home-parti
 import { AuthenticationGuard } from '../../guards/authentication.guard';
 import { UserRole } from '../../models/user-roles.enum';
 import { RoomParticipantPageComponent } from './room-participant-page/room-participant-page.component';
-import { CommentCreatePageComponent } from './comment-create-page/comment-create-page.component';
 import { FeedbackBarometerPageComponent } from '../shared/feedback-barometer-page/feedback-barometer-page.component';
 import { ParticipantContentCarouselPageComponent } from './participant-content-carousel-page/participant-content-carousel-page.component';
 import { StatisticsPageComponent } from '../shared/statistics-page/statistics-page.component';
 import { StatisticComponent } from '../shared/statistic/statistic.component';
+import { CommentParticipantPageComponent } from './comment-participant-page/comment-participant-page.component';
 
 const routes: Routes = [
   {
@@ -36,8 +36,8 @@ const routes: Routes = [
     data: { roles: [UserRole.PARTICIPANT] }
   },
   {
-    path: 'room/:roomId/create-comment',
-    component: CommentCreatePageComponent,
+    path: 'room/:roomId/comments',
+    component: CommentParticipantPageComponent,
     canActivate: [AuthenticationGuard],
     data: { roles: [UserRole.PARTICIPANT] }
   },
diff --git a/src/app/components/participant/participant.module.ts b/src/app/components/participant/participant.module.ts
index 77d5bb07717cd9433c3260a33bf96838a0bd9fda..640952e86f8c4ee683e67d86574822321a401f5f 100644
--- a/src/app/components/participant/participant.module.ts
+++ b/src/app/components/participant/participant.module.ts
@@ -11,6 +11,7 @@ import { ParticipantContentCarouselPageComponent } from './participant-content-c
 import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
 import { HttpClient } from '@angular/common/http';
 import { TranslateHttpLoader } from '@ngx-translate/http-loader';
+import { CommentParticipantPageComponent } from './comment-participant-page/comment-participant-page.component';
 
 @NgModule({
   imports: [
@@ -32,7 +33,8 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader';
     ContentTextParticipantComponent,
     HomeParticipantPageComponent,
     RoomParticipantPageComponent,
-    ParticipantContentCarouselPageComponent
+    ParticipantContentCarouselPageComponent,
+    CommentParticipantPageComponent
   ]
 })
 export class ParticipantModule {
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.html b/src/app/components/participant/room-participant-page/room-participant-page.component.html
index c361e9994ecc4f6cb84c41cc0c8c464e4ef89283..685e9034d78298a3728246a3ab26541aa5da12c0 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.html
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.html
@@ -23,21 +23,21 @@
       </mat-card-content>
       <mat-grid-list cols="3" rowHeight="2:1">
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.create-comment' | translate}}"
-                  routerLink="/participant/room/{{ room.id }}/create-comment">
+          <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/comments">
             <mat-icon>question_answer</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-comment' | translate}}</h3>
           </button>
         </mat-grid-tile>
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.give-feedback' | translate}}"
-                  routerLink="/participant/room/{{ room.shortId }}/feedback-barometer">
+          <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/feedback-barometer">
             <mat-icon>thumbs_up_down</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.give-feedback' | translate}}</h3>
           </button>
         </mat-grid-tile>
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="Lernstand"
-                  routerLink="/participant/room/{{ room.shortId }}/statistics">
+          <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/statistics">
             <mat-icon>insert_chart</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'statistic.answer-statistic' | translate}}</h3>
           </button>
         </mat-grid-tile>
       </mat-grid-list>
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.scss b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
index a3a11c062dd6e0ee95fda1f468f023bf1f507e52..ed7e5887a128cfc053a10a8b1cc48159d0e4958d 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.scss
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
@@ -3,7 +3,7 @@
 mat-card {
   width: 100%;
   max-width: 800px;
-  background-color: #fff8e1 !important;
+  background-color: var(--card)!important;
 }
 
 mat-card-content>:first-child {
@@ -13,7 +13,8 @@ mat-card-content>:first-child {
 .mat-icon-button {
   width: 75%;
   height: 75%;
-  margin-bottom: 20px;
+  margin-bottom: 10px;
+  color: var(--primary)!important;
 }
 
 mat-icon {
@@ -25,6 +26,8 @@ mat-icon {
 
 button {
   width: 30%;
+  transition: all 0.3s;
+
   &:hover {
     transform: scale(1.25)
   }
@@ -32,19 +35,24 @@ button {
 
 p {
   font-size: medium;
+  color: var(--text-2)!important;
+}
+
+h2 {
+  font-size: large;
+  color: var(--text-1)!important;
 }
 
 h3 {
   font-size: larger;
+  color: var(--text-3)!important;
+  margin-top: 10px;
+  margin-bottom: 10px;
 }
 
 h4 {
   font-size: medium;
-  color: mat-color($arsnova-primary, 300);
-}
-
-h2 {
-  font-size: large;
+  color: var(--text-1)!important;
 }
 
 mat-card-header {
@@ -61,7 +69,7 @@ mat-card-subtitle {
 }
 
 mat-expansion-panel {
-  background-color: #fff8e1!important;
+  background-color: var(--card)!important;
   min-width: 200px;
 }
 
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.ts b/src/app/components/participant/room-participant-page/room-participant-page.component.ts
index 49f308215252343c542b3eb0629952d7f348b3a9..69244c2222e1bcb9edc33299b1ee94b914fb3499 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.ts
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.ts
@@ -15,6 +15,8 @@ export class RoomParticipantPageComponent implements OnInit {
 
   room: Room;
   isLoading = true;
+  deviceType = localStorage.getItem('deviceType');
+
 
   constructor(private location: Location,
               private roomService: RoomService,
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.html b/src/app/components/shared/_dialogs/present-comment/present-comment.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..e24779e17cf6ec0b48ea83488971abdca549817c
--- /dev/null
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.html
@@ -0,0 +1,8 @@
+<mat-slider min="1" max="2" step="0.1" thumbLabel tickInterval="auto"
+            (input)="updateFontSize($event)" id="slider"></mat-slider>
+<button id="exitButton" mat-raised-button color="warn" (click)="onCloseClick()">
+  <mat-icon >exit_to_app</mat-icon>
+</button>
+<div id="comment">
+  {{body}}
+</div>
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss b/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..305ba28b00216ed7f567c965cacf4e34ea8ba1bc
--- /dev/null
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss
@@ -0,0 +1,23 @@
+#comment {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  text-align: center;
+  min-height: 90vh;
+  font-size: 2.1em;
+  margin: 0.5em 0.5em;
+
+}
+
+#exitButton {
+  position:absolute;
+  top:2em;
+  right:2em;
+}
+
+#slider {
+  position:absolute;
+  top:2em;
+  left:2em;
+}
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.spec.ts b/src/app/components/shared/_dialogs/present-comment/present-comment.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d1bf39b8ca52eefa7761b9a15a6dc0c2eae596f6
--- /dev/null
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.spec.ts
@@ -0,0 +1,26 @@
+/*
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { PresentCommentComponent } from './present-comment.component';
+
+describe('PresentCommentComponent', () => {
+  let component: PresentCommentComponent;
+  let fixture: ComponentFixture<PresentCommentComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ PresentCommentComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(PresentCommentComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts b/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..db98ecce3f438a190adff9d0ac4e9a8a86f6f084
--- /dev/null
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts
@@ -0,0 +1,30 @@
+import { Component, OnInit } from '@angular/core';
+import { MatDialog, MatDialogRef } from '@angular/material';
+import { TranslateService } from '@ngx-translate/core';
+
+@Component({
+  selector: 'app-present-comment',
+  templateUrl: './present-comment.component.html',
+  styleUrls: ['./present-comment.component.scss']
+})
+export class PresentCommentComponent implements OnInit {
+  public body: string;
+
+  constructor(
+    public dialogRef: MatDialogRef<PresentCommentComponent>,
+    private translateService: TranslateService,
+    public dialog: MatDialog
+  ) { }
+
+  ngOnInit() {
+    this.translateService.use(localStorage.getItem('currentLang'));
+  }
+
+  onCloseClick(): void {
+    this.dialogRef.close('close');
+  }
+
+  private updateFontSize(event: any): void {
+     document.getElementById('comment').style.fontSize = (event.value * 2.5) + 'em';
+  }
+}
diff --git a/src/app/components/shared/_dialogs/room-create/room-create.component.ts b/src/app/components/shared/_dialogs/room-create/room-create.component.ts
index dc074e219ffe72dff4dd83899230ecabfd82c221..81e0dac52a117a635dd3c5815f420d46778609d3 100644
--- a/src/app/components/shared/_dialogs/room-create/room-create.component.ts
+++ b/src/app/components/shared/_dialogs/room-create/room-create.component.ts
@@ -46,11 +46,11 @@ export class RoomCreateComponent implements OnInit {
       this.emptyInputs = true;
       return;
     }
-    this.roomService.addRoom({
-      name: longRoomName,
-      abbreviation: '00000000',
-      description: description
-    } as Room).subscribe(room => {
+    const newRoom = new Room();
+    newRoom.name = longRoomName;
+    newRoom.abbreviation = '00000000';
+    newRoom.description = description;
+    this.roomService.addRoom(newRoom).subscribe(room => {
       this.room = room;
       let msg1: string;
       let msg2: string;
diff --git a/src/app/components/shared/_dialogs/statistic-help/statistic-help.component.scss b/src/app/components/shared/_dialogs/statistic-help/statistic-help.component.scss
index effb292362e0dfc112c82dc4eb387d3ddcce2097..a8bc1a483a38f177478398fdea674ee8c5c89736 100644
--- a/src/app/components/shared/_dialogs/statistic-help/statistic-help.component.scss
+++ b/src/app/components/shared/_dialogs/statistic-help/statistic-help.component.scss
@@ -1,21 +1,21 @@
 .positiveC {
-  background-color: #AED581;
+  background-color: var(--green);
 }
 
 .negativeC {
-  background-color: #FF8A65;
+  background-color: var(--red);
 }
 
 .okayC {
-  background-color: #FFD54F;
+  background-color: var(--yellow);
 }
 
 .emptyC {
-  background-color: #E0E0E0;
+  background-color: var(--grey);
 }
 
 mat-chip {
-  width: 130px!important;
+  width: 130px !important;
   display: flex;
   justify-content: center;
 }
diff --git a/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.html b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..7eae850eaed7c04d88ccb0b1b6d5cdd61e7fc077
--- /dev/null
+++ b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.html
@@ -0,0 +1,13 @@
+<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
+  <mat-form-field class="input-block">
+      <textarea matInput #commentBody placeholder="{{ 'comment-page.enter-comment' | translate}}"
+                matAutosizeMinRows=2 matAutosizeMaxRows=5  maxlength="255" [formControl]="bodyForm"></textarea>
+    <mat-hint align="end">{{commentBody.value.length}} / 255</mat-hint>
+  </mat-form-field>
+  <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
+    <button mat-raised-button color="warn"
+            (click)="onNoClick()">{{ 'comment-page.abort' | translate}}</button>
+    <button mat-raised-button color="accent"
+            (click)="closeDialog(commentBody.value)">{{ 'comment-page.send' | translate}}</button>
+  </div>
+</div>
diff --git a/src/app/components/participant/comment-create-page/comment-create-page.component.scss b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.scss
similarity index 83%
rename from src/app/components/participant/comment-create-page/comment-create-page.component.scss
rename to src/app/components/shared/_dialogs/submit-comment/submit-comment.component.scss
index ce244ec3c6b76073b139add2885197e286f63bf0..78777d0a839395d1f7c866668df3246e9357287b 100644
--- a/src/app/components/participant/comment-create-page/comment-create-page.component.scss
+++ b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.scss
@@ -1,3 +1,7 @@
+button {
+  min-width: 80px;
+}
+
 form {
   display: block;
   width: 100%;
@@ -10,7 +14,6 @@ app-comment-list {
   max-width: 800px;
 }
 
-button {
-  margin-right: 20px;
-  min-width: 80px;
+textarea {
+  line-height: 120%;
 }
diff --git a/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.spec.ts b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..730881f3daa422eb190a18e9dc1b3e73fbdd6d99
--- /dev/null
+++ b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.spec.ts
@@ -0,0 +1,27 @@
+/*
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { SubmitCommentComponent } from './submit-comment.component';
+
+describe('SubmitCommentComponent', () => {
+  let component: SubmitCommentComponent;
+  let fixture: ComponentFixture<SubmitCommentComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ SubmitCommentComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(SubmitCommentComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.ts b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..52aa288d8422f673d465051ff6defbfbf50edaff
--- /dev/null
+++ b/src/app/components/shared/_dialogs/submit-comment/submit-comment.component.ts
@@ -0,0 +1,63 @@
+import { Component, Inject, OnInit } from '@angular/core';
+import { Comment } from '../../../../models/comment';
+import { NotificationService } from '../../../../services/util/notification.service';
+import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material';
+import { TranslateService } from '@ngx-translate/core';
+import { FormControl, Validators } from '@angular/forms';
+import { User } from '../../../../models/user';
+import { CommentListComponent } from '../../comment-list/comment-list.component';
+
+
+@Component({
+  selector: 'app-submit-comment',
+  templateUrl: './submit-comment.component.html',
+  styleUrls: ['./submit-comment.component.scss']
+})
+export class SubmitCommentComponent implements OnInit {
+
+  comment: Comment;
+
+  user: User;
+  roomId: string;
+
+  bodyForm = new FormControl('', [Validators.required]);
+
+  constructor(
+              private notification: NotificationService,
+              public dialogRef: MatDialogRef<CommentListComponent>,
+              private translateService: TranslateService,
+              public dialog: MatDialog,
+              private translationService: TranslateService,
+              @Inject(MAT_DIALOG_DATA) public data: any) {
+  }
+
+  ngOnInit() {
+    this.translateService.use(localStorage.getItem('currentLang'));
+  }
+
+  onNoClick(): void {
+    this.dialogRef.close();
+  }
+
+  checkInputData(body: string): boolean {
+    body = body.trim();
+    if (!body) {
+      this.translationService.get('comment-page.error-comment').subscribe(message => {
+        this.notification.show(message);
+      });
+      return false;
+    }
+    return true;
+  }
+
+  closeDialog(body: string) {
+    if (this.checkInputData(body) === true) {
+      const comment = new Comment();
+      comment.roomId = localStorage.getItem(`roomId`);
+      comment.body = body;
+      comment.userId = this.user.id;
+      comment.createdFromLecturer = this.user.role === 1;
+      this.dialogRef.close(comment);
+    }
+  }
+}
diff --git a/src/app/components/shared/comment-list/comment-list.component.html b/src/app/components/shared/comment-list/comment-list.component.html
index 79ade9f83af464774ab782a49b871ec9917f8937..886f34baf99903c51dea2c4c29dfa201a309b555 100644
--- a/src/app/components/shared/comment-list/comment-list.component.html
+++ b/src/app/components/shared/comment-list/comment-list.component.html
@@ -1,37 +1,65 @@
-<mat-card *ngFor="let comment of comments">
-  <mat-card-header>
-    <mat-card-title>{{comment.subject}}</mat-card-title>
-    <mat-card-subtitle>
-      <span class="mat-caption">Submitted on {{ comment.creationTimestamp | date:'dd-MM-yyyy HH:mm:ss' }}</span>
-    </mat-card-subtitle>
-  </mat-card-header>
-  <mat-divider></mat-divider>
-  <mat-card-content>
-    <p>{{comment.body}}</p>
-  </mat-card-content>
-  <mat-divider></mat-divider>
-  <mat-card-actions *ngIf="userRole === userRoleTemp">
-    <button mat-icon-button *ngIf="comment.read" color="primary" matTooltip="Mark as read"
-            (click)="setRead(comment)">
-      <mat-icon>speaker_notes</mat-icon>
-    </button>
-    <button mat-icon-button *ngIf="!comment.read" color="warn" matTooltip="Mark as unread"
-            (click)="setRead(comment)">
-      <mat-icon>speaker_notes_off</mat-icon>
-    </button>
-    <button mat-icon-button color="warn" matTooltip="Delete comment"
-            (click)="delete(comment)">
-      <mat-icon>delete</mat-icon>
-    </button>
-  </mat-card-actions>
-  <mat-card-actions *ngIf="userRole !== userRoleTemp">
-    <button mat-icon-button *ngIf="comment.read" color="primary" matTooltip="Mark as read"
-            (click)="setRead(comment)" disabled>
-      <mat-icon>speaker_notes</mat-icon>
-    </button>
-    <button mat-icon-button *ngIf="!comment.read" color="warn" matTooltip="Mark as unread"
-            (click)="setRead(comment)" disabled>
-      <mat-icon>speaker_notes_off</mat-icon>
-    </button>
-  </mat-card-actions>
+<div fxLayout="row" id="search-container">
+  <mat-label fxLayoutAlign="center center">
+    <mat-icon class="search-icon">search</mat-icon>
+  </mat-label>
+  <input #searchBox placeholder="{{ 'comment-list-page.search' | translate }}"
+    (input)="searchComments(searchBox.value)">
+  <button mat-icon-button class="searchBarButton close" *ngIf="searchBox.value || isIconHide"
+          (click)="hideCommentsList=false; searchBox.value=''; isIconHide=false">
+    <mat-icon>close</mat-icon>
+  </button>
+  <span class="fill-remaining-space"></span>
+  <button mat-icon-button class="searchBarButton" *ngIf="!searchBox.value && userRole === 1 && comments.length > 0 && !isIconHide"
+    [matTooltip]="'Export comments'" (click)="openExportDialog()">
+    <mat-icon class="searchBarIcon" color="accent">cloud_download</mat-icon>
+  </button>
+
+  <button mat-icon-button class="searchBarButton" *ngIf="!searchBox.value && !isIconHide"
+          color="accent" (click)="openSubmitDialog()">
+    <mat-icon class="searchBarIcon">add_circle</mat-icon>
+  </button>
+
+  <button mat-icon-button class="searchBarButton" *ngIf="!searchBox.value && !isIconHide"
+          color="accent" [matMenuTriggerFor]="filterMenu">
+    <mat-icon class="searchBarIcon">sort</mat-icon>
+  </button>
+
+  <mat-menu #filterMenu="matMenu" xPosition="before">
+    <div id="filterIcon">
+      <button mat-icon-button (focus)="hideCommentsList=true" (click)="filterMarkAsCorrect(); isIconHide=true">
+        <mat-icon color="primary">check_circle</mat-icon>
+      </button>
+
+      <button mat-icon-button (focus)="hideCommentsList=true" (click)="filterFavorite(); isIconHide=true">
+        <mat-icon color="primary">star</mat-icon>
+      </button>
+
+      <button mat-icon-button (focus)="hideCommentsList=true" (click)="filterMarkAsRead(); isIconHide=true">
+        <mat-icon color="primary">visibility</mat-icon>
+      </button>
+
+      <button mat-icon-button (focus)="hideCommentsList=false" (click)="sortVoteDesc()">
+        <mat-icon color="primary">keyboard_arrow_up</mat-icon>
+      </button>
+
+      <button mat-icon-button (focus)="hideCommentsList=false" (click)="sortVote()">
+        <mat-icon color="primary">keyboard_arrow_down</mat-icon>
+      </button>
+
+      <button mat-icon-button (focus)="hideCommentsList=false" (click)="sortTimeStamp()">
+        <mat-icon color="primary">remove</mat-icon>
+      </button>
+      <button mat-icon-button *ngIf="userRole === 1" (focus)="hideCommentsList=false" (click)="deleteComments()">
+        <mat-icon color="primary">delete</mat-icon>
+      </button>
+    </div>
+  </mat-menu>
+</div>
+
+<mat-card class="outer-card" *ngIf="user.role === 0">
+  <app-comment *ngFor="let current of getCommentsParticipant()" [comment]="current"></app-comment>
 </mat-card>
+<mat-card class="outer-card" *ngIf="user.role === 1">
+  <app-comment *ngFor="let current of getCommentsCreator()" [comment]="current"></app-comment>
+</mat-card>
+
diff --git a/src/app/components/shared/comment-list/comment-list.component.scss b/src/app/components/shared/comment-list/comment-list.component.scss
index 54dc90c341033023d58d89f8c1089584866fb5c3..838f23a98519a6db69f48f25676fa44b21fcb598 100644
--- a/src/app/components/shared/comment-list/comment-list.component.scss
+++ b/src/app/components/shared/comment-list/comment-list.component.scss
@@ -1,7 +1,55 @@
-mat-card {
-  margin-bottom: 20px;
+.outer-card {
+  margin-bottom: 10px;
+  background-color: var(--primary);
 }
 
-mat-card-content>:first-child {
-  margin-top: 20px;
+app-comment {
+  overflow: auto;
+  overflow-wrap: break-word;
+}
+
+.mat-form-field {
+  float: left;
+  padding-left: 10px;
+}
+
+input {
+  box-sizing: border-box;
+  padding: 0 10px 0 5px;
+  width: 50%;
+  background-color: var(--light);
+  border: none;
+  outline: none;
+  min-height: 60px;
+  font-size: large;
+  border-radius: 5px;
+}
+
+#search-container {
+  border-radius: 5px;
+  background-color: var(--light);
+  margin-bottom: 10px;
+}
+
+.search-icon {
+  padding: 10px;
+}
+
+.searchBarButton {
+  width: 45px !important;
+  height: 45px !important;
+  text-align: center;
+  min-width: 50px;
+  margin: 10px 2% 0 0;
+}
+
+.close {
+  margin: 5px 0 5px 0;
+}
+
+.searchBarIcon {
+  font-size: 45px;
+  height: 45px;
+  width: 45px;
+  line-height: 100% !important;
 }
diff --git a/src/app/components/shared/comment-list/comment-list.component.ts b/src/app/components/shared/comment-list/comment-list.component.ts
index f30897d8513d15bf34e5246fef3b70101edde015..8914b6d9362814552b4f6190c2937fa3f311eeb5 100644
--- a/src/app/components/shared/comment-list/comment-list.component.ts
+++ b/src/app/components/shared/comment-list/comment-list.component.ts
@@ -1,15 +1,18 @@
-import { Component, OnInit } from '@angular/core';
-import { ActivatedRoute } from '@angular/router';
-import { Location } from '@angular/common';
+import { Component, Input, OnInit } from '@angular/core';
 import { Comment } from '../../../models/comment';
 import { CommentService } from '../../../services/http/comment.service';
-import { RoomService } from '../../../services/http/room.service';
-import { NotificationService } from '../../../services/util/notification.service';
-import { AuthenticationService } from '../../../services/http/authentication.service';
-import { UserRole } from '../../../models/user-roles.enum';
-import { User } from '../../../models/user';
 import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
+import { Message } from '@stomp/stompjs';
+import { SubmitCommentComponent } from '../_dialogs/submit-comment/submit-comment.component';
+import { MatDialog } from '@angular/material';
+import { WsCommentServiceService } from '../../../services/websockets/ws-comment-service.service';
+import { User } from '../../../models/user';
+import { UserRole } from '../../../models/user-roles.enum';
+import { AuthenticationService } from '../../../services/http/authentication.service';
+import { Room } from '../../../models/room';
+import { RoomService } from '../../../services/http/room.service';
+import { CommentExportComponent } from '../../creator/_dialogs/comment-export/comment-export.component';
 
 @Component({
   selector: 'app-comment-list',
@@ -17,51 +20,195 @@ import { LanguageService } from '../../../services/util/language.service';
   styleUrls: ['./comment-list.component.scss']
 })
 export class CommentListComponent implements OnInit {
-  userRoleTemp: any = UserRole.CREATOR;
-  userRole: UserRole;
-  user: User;
+  @Input() user: User;
+  @Input() roomId: string;
+  room: Room;
   comments: Comment[];
   isLoading = true;
-  roomId: string;
-  roomShortId: string;
-
-  constructor(protected authenticationService: AuthenticationService,
-              private route: ActivatedRoute,
-              private roomService: RoomService,
-              private location: Location,
-              private commentService: CommentService,
-              private notification: NotificationService,
-              private translateService: TranslateService,
-              protected langService: LanguageService) {
+  hideCommentsList = false;
+  isIconHide: boolean;
+  filteredComments: Comment[];
+  userRole: UserRole;
+
+  constructor(private commentService: CommentService,
+    private translateService: TranslateService,
+    public dialog: MatDialog,
+    protected langService: LanguageService,
+    private authenticationService: AuthenticationService,
+    private wsCommentService: WsCommentServiceService,
+    protected roomService: RoomService
+  ) {
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
 
   ngOnInit() {
-    this.userRole = this.authenticationService.getRole();
-    this.user = this.authenticationService.getUser();
-    this.roomShortId = this.route.snapshot.paramMap.get('roomId');
     this.roomId = localStorage.getItem(`roomId`);
+    this.roomService.getRoom(this.roomId).subscribe( room => this.room = room);
+    this.comments = [];
+    this.hideCommentsList = false;
+    this.wsCommentService.getCommentStream(this.roomId).subscribe((message: Message) => {
+      this.parseIncomingMessage(message);
+    });
     this.getComments();
     this.translateService.use(localStorage.getItem('currentLang'));
+    this.userRole = this.authenticationService.getRole();
   }
 
   getComments(): void {
-      this.commentService.getComments(this.roomId)
-        .subscribe(comments => {
-          this.comments = comments;
-          this.isLoading = false;
-        });
+    this.commentService.getComments(this.roomId)
+      .subscribe(comments => {
+        this.comments = comments;
+        this.isLoading = false;
+      });
+  }
+
+  searchComments(term: string): void {
+    if (term && term.length > 2) {
+      this.hideCommentsList = true;
+      this.filteredComments = this.comments.filter(c => c.body.toLowerCase().includes(term.toLowerCase()));
+    } else {
+      this.hideCommentsList = false;
+    }
+  }
+
+  getCommentsCreator(): Comment[] {
+    let commentThreshold = -10;
+    if (this.room.extensions && this.room.extensions['comments']) {
+      commentThreshold = this.room.extensions['comments'].commentThreshold;
+      if (this.hideCommentsList) {
+        return this.filteredComments.filter( x => x.score >= commentThreshold );
+      } else {
+        return this.comments.filter( x => x.score >= commentThreshold );
+      }
+    } else {
+      if (this.hideCommentsList) {
+        return this.filteredComments;
+      } else {
+        return this.comments;
+      }
+    }
+  }
+
+  getCommentsParticipant(): Comment[] {
+    if (this.hideCommentsList) {
+      return this.filteredComments;
+    } else {
+      return this.comments;
+    }
+  }
+
+  parseIncomingMessage(message: Message) {
+    const msg = JSON.parse(message.body);
+    const payload = msg.payload;
+    switch (msg.type) {
+      case 'CommentCreated':
+        const c = new Comment();
+        c.roomId = this.roomId;
+        c.body = payload.body;
+        c.id = payload.id;
+        c.timestamp = payload.timestamp;
+        this.comments = this.comments.concat(c);
+        break;
+      case 'CommentPatched':
+        // ToDo: Use a map for comments w/ key = commentId
+        for (let i = 0; i < this.comments.length; i++) {
+          if (payload.id === this.comments[i].id) {
+            for (const [key, value] of Object.entries(payload.changes)) {
+              switch (key) {
+                case 'read':
+                  this.comments[i].read = <boolean>value;
+                  break;
+                case 'correct':
+                  this.comments[i].correct = <boolean>value;
+                  break;
+                case 'favorite':
+                  this.comments[i].favorite = <boolean>value;
+                  break;
+                case 'score':
+                  this.comments[i].score = <number>value;
+                  break;
+              }
+            }
+          }
+        }
+        break;
+      case 'CommentHighlighted':
+      // ToDo: Use a map for comments w/ key = commentId
+        for (let i = 0; i < this.comments.length; i++) {
+          if (payload.id === this.comments[i].id) {
+            this.comments[i].highlighted = <boolean>payload.lights;
+          }
+        }
+        break;
+      case 'CommentDeleted':
+        for (let i = 0; i < this.comments.length; i++) {
+          this.comments = this.comments.filter(function (el) {
+            return el.id !== payload.id;
+          });
+        }
+        break;
+    }
+  }
+
+  openSubmitDialog(): void {
+    const dialogRef = this.dialog.open(SubmitCommentComponent, {
+      width: '400px'
+    });
+    dialogRef.componentInstance.user = this.user;
+    dialogRef.componentInstance.roomId = this.roomId;
+    dialogRef.afterClosed()
+      .subscribe(result => {
+        if (result) {
+          this.send(result);
+        } else {
+          return;
+        }
+      });
   }
 
-  setRead(comment: Comment): void {
-    this.comments.find(c => c.id === comment.id).read = !comment.read;
-    this.commentService.updateComment(comment).subscribe();
+  send(comment: Comment): void {
+    this.wsCommentService.add(comment);
   }
 
-  delete(comment: Comment): void {
-    this.comments = this.comments.filter(c => c !== comment);
-    this.commentService.deleteComment(comment.id).subscribe(room => {
-      this.notification.show(`Comment '${comment.subject}' successfully deleted.`);
+  openExportDialog(): void {
+    const dialogRef = this.dialog.open(CommentExportComponent, {
+      width: '400px'
     });
+    dialogRef.componentInstance.comments = this.comments;
+  }
+
+  filterFavorite(): void {
+    this.filteredComments = this.comments.filter(c => c.favorite);
+  }
+
+  filterMarkAsRead(): void {
+    this.filteredComments = this.comments.filter(c => c.read);
+  }
+
+  filterMarkAsCorrect(): void {
+    this.filteredComments = this.comments.filter(c => c.correct);
+  }
+
+  sortVote(): void {
+    this.comments.sort((a, b) => {
+        return a.score - b.score;
+    });
+  }
+
+  sortVoteDesc(): void {
+    this.comments.sort((a, b) => {
+        return b.score - a.score;
+    });
+  }
+
+  sortTimeStamp(): void {
+    this.comments.sort((a, b) => {
+      const dateA = new Date(a.timestamp), dateB = new Date(b.timestamp);
+      return +dateB - +dateA;
+    });
+  }
+
+  deleteComments(): void {
+    this.commentService.deleteCommentsByRoomId(this.roomId).subscribe();
   }
 }
diff --git a/src/app/components/shared/comment-page/comment-page.component.html b/src/app/components/shared/comment-page/comment-page.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..44f9d6b44659f93e633ed89748bd90770abf62ce
--- /dev/null
+++ b/src/app/components/shared/comment-page/comment-page.component.html
@@ -0,0 +1,6 @@
+<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
+  <div fxLayout="row" fxLayoutAlign="center">
+    <app-comment-list [user]="user" [roomId]="roomId"></app-comment-list>
+  </div>
+</div>
+
diff --git a/src/app/components/shared/comment-page/comment-page.component.scss b/src/app/components/shared/comment-page/comment-page.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..501394eb496b8c96db882589073de268cfcb434a
--- /dev/null
+++ b/src/app/components/shared/comment-page/comment-page.component.scss
@@ -0,0 +1,4 @@
+app-comment-list {
+  width: 100%;
+  max-width: 800px;
+}
diff --git a/src/app/components/participant/comment-create-page/comment-create-page.component.spec.ts b/src/app/components/shared/comment-page/comment-page.component.spec.ts
similarity index 51%
rename from src/app/components/participant/comment-create-page/comment-create-page.component.spec.ts
rename to src/app/components/shared/comment-page/comment-page.component.spec.ts
index 5db9a7cbab98cfbc030de539c2b687a12c506703..de9e0a549095b50aebd1bcd4d020a2a1b99510ca 100644
--- a/src/app/components/participant/comment-create-page/comment-create-page.component.spec.ts
+++ b/src/app/components/shared/comment-page/comment-page.component.spec.ts
@@ -1,20 +1,20 @@
 /* import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
-import { CommentCreatePageComponent } from './comment-create-page.component';
+import { CommentPageComponent } from './comment-page.component';
 
-describe('CommentCreatePageComponent', () => {
-  let component: CommentCreatePageComponent;
-  let fixture: ComponentFixture<CommentCreatePageComponent>;
+describe('CommentPageComponent', () => {
+  let component: CommentPageComponent;
+  let fixture: ComponentFixture<CommentPageComponent>;
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ CommentCreatePageComponent ]
+      declarations: [ CommentPageComponent ]
     })
     .compileComponents();
   }));
 
   beforeEach(() => {
-    fixture = TestBed.createComponent(CommentCreatePageComponent);
+    fixture = TestBed.createComponent(CommentPageComponent);
     component = fixture.componentInstance;
     fixture.detectChanges();
   });
diff --git a/src/app/components/shared/comment-page/comment-page.component.ts b/src/app/components/shared/comment-page/comment-page.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..725fc8800b5bee1039f167bd72cd7a67c7d2e52f
--- /dev/null
+++ b/src/app/components/shared/comment-page/comment-page.component.ts
@@ -0,0 +1,24 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { User } from '../../../models/user';
+import { NotificationService } from '../../../services/util/notification.service';
+import { AuthenticationService } from '../../../services/http/authentication.service';
+
+@Component({
+  selector: 'app-comment-page',
+  templateUrl: './comment-page.component.html',
+  styleUrls: ['./comment-page.component.scss']
+})
+export class CommentPageComponent implements OnInit {
+  roomId: string;
+  user: User;
+
+  constructor(private route: ActivatedRoute,
+              private notification: NotificationService,
+              private authenticationService: AuthenticationService) { }
+
+  ngOnInit(): void {
+    this.roomId = localStorage.getItem('roomId');
+    this.user = this.authenticationService.getUser();
+  }
+}
diff --git a/src/app/components/shared/comment/comment.component.html b/src/app/components/shared/comment/comment.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..a6146daeac83fdcca50b475c4917afea6f2bfb2b
--- /dev/null
+++ b/src/app/components/shared/comment/comment.component.html
@@ -0,0 +1,37 @@
+<mat-card id="comment-card" [ngClass]="{true : 'highlighted', false: ''}[comment.highlighted]" [@slide]>
+    <div fxLayout="column">
+      <div fxLayout="row">
+        <span class="fill-remaining-space"></span>
+      <div id="date">
+        <div *ngIf="language === 'de'; else englishDate">
+          {{comment.timestamp | date: ' HH:mm:ss '}}Uhr,{{comment.timestamp | date: ' M.d.yy'}}
+        </div>
+        <ng-template #englishDate>
+          {{comment.timestamp | date: 'h:mm:ss a, M/d/yy'}}
+        </ng-template>
+      </div>
+      <button mat-icon-button *ngIf="comment.correct || !isStudent" [disabled]="isStudent" (click)="setCorrect(comment)" [matTooltip]="comment.correct ? 'Unmark as correct' : 'Mark as correct'">
+        <mat-icon [ngClass]="{true : 'correct-icon', false: 'not-marked'}[comment.correct]">check_circle</mat-icon>
+      </button>
+      <button mat-icon-button *ngIf="comment.favorite || !isStudent" [disabled]="isStudent" (click)="setFavorite(comment)" [matTooltip]="comment.favorite ? 'Mark as not favorite' : 'Mark as favorite'">
+        <mat-icon [ngClass]="{true: 'favorite-icon', false: 'not-marked'}[comment.favorite]">favorite_border</mat-icon>
+        </button>
+        <button mat-icon-button [disabled]="isStudent" (click)="setRead(comment)" [matTooltip]="comment.read ? 'Mark  as unread' : 'Mark as read'">
+        <mat-icon class="icon" [ngClass]="{true: 'read-icon', false: 'not-marked'}[comment.read]">visibility</mat-icon>
+        </button>
+      </div>
+      <div fxLayout="row">
+        <div class="body" (click)="openPresentDialog(comment)">{{comment.body}}</div>
+        <span class="fill-remaining-space" (click)="openPresentDialog(comment)"></span>
+        <div fxLayout="column" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState" (@rubberBand.done)="resetAnimationState()">
+          <button mat-icon-button [disabled]="!isStudent" (click)="voteUp(comment)" >
+            <mat-icon class="voting-icon" [ngClass]="{'upVoted' : hasVoted === 1}">keyboard_arrow_up</mat-icon>
+          </button>
+          <h2>{{comment.score}}</h2>
+          <button mat-icon-button [disabled]="!isStudent" (click)="voteDown(comment)">
+            <mat-icon class="voting-icon" [ngClass]="{'downVoted' : hasVoted === -1}">keyboard_arrow_down</mat-icon>
+          </button>
+        </div>
+      </div>
+    </div>
+  </mat-card>
diff --git a/src/app/components/shared/comment/comment.component.scss b/src/app/components/shared/comment/comment.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..cda2a043d60b9cf796ad8546d1240c75e4cf31af
--- /dev/null
+++ b/src/app/components/shared/comment/comment.component.scss
@@ -0,0 +1,83 @@
+#comment-card {
+  margin-bottom: 20px;
+  background-color: var(--background-2);
+  cursor: pointer;
+  padding-bottom: 10px;
+  padding-top: 10px;
+  padding-right: 5px;
+  transition: background-color 1s linear;
+}
+
+mat-card-content > :first-child {
+  margin-top: 20px;
+}
+
+.voting-icon {
+  width: 35px;
+  height: 35px;
+  font-size: 35px;
+  line-height: 100% !important;
+}
+
+.upVoted {
+  color: var(--green);
+}
+
+.downVoted {
+  color: var(--red);
+}
+
+.not-marked {
+  color: var(--grey);
+}
+
+.correct-icon {
+  color: var(--green);
+}
+
+.read-icon {
+  color: var(--blue);
+}
+
+.favorite-icon {
+  color: var(--yellow);
+}
+
+h2 {
+  text-align: center;
+  margin: 0;
+}
+
+.body {
+  min-width: 200px;
+  min-height: 100px;
+  text-align: start;
+  font-size: 140%;
+  max-height: 120px;
+  overflow: auto;
+  padding-left: 2%;
+  padding-right: 2%;
+}
+
+.mat-icon {
+  transform: scale(1.2);
+}
+
+#date {
+  padding-top: 10px;
+  margin-left: 2%;
+  opacity: 0.4;
+  position: absolute;
+}
+
+.date {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+}
+
+.highlighted {
+  background-color: var(--highlighted)!important;
+  transition: background-color 1s linear;
+}
+
diff --git a/src/app/components/shared/comment/comment.component.spec.ts b/src/app/components/shared/comment/comment.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5d05159bb6d681d54e8586e27b3ccccf1fb82289
--- /dev/null
+++ b/src/app/components/shared/comment/comment.component.spec.ts
@@ -0,0 +1,26 @@
+/*import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CommentComponent } from './comment.component';
+
+describe('CommentComponent', () => {
+  let component: CommentComponent;
+  let fixture: ComponentFixture<CommentComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ CommentComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CommentComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/components/shared/comment/comment.component.ts b/src/app/components/shared/comment/comment.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b9f315b9591c01e23adbd190345e8020aeb4a949
--- /dev/null
+++ b/src/app/components/shared/comment/comment.component.ts
@@ -0,0 +1,150 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { Comment } from '../../../models/comment';
+import { AuthenticationService } from '../../../services/http/authentication.service';
+import { ActivatedRoute } from '@angular/router';
+import { Location } from '@angular/common';
+import { CommentService } from '../../../services/http/comment.service';
+import { NotificationService } from '../../../services/util/notification.service';
+import { TranslateService } from '@ngx-translate/core';
+import { LanguageService } from '../../../services/util/language.service';
+import { WsCommentServiceService } from '../../../services/websockets/ws-comment-service.service';
+import { PresentCommentComponent } from '../_dialogs/present-comment/present-comment.component';
+import { MatDialog } from '@angular/material';
+import { trigger, transition, style, animate, state, keyframes } from '@angular/animations';
+
+export const rubberBand = [
+  style({ transform: 'scale3d(1, 1, 1)', offset: 0 }),
+  style({ transform: 'scale3d(1.05, 0.75, 1)', offset: 0.3 }),
+  style({ transform: 'scale3d(0.75, 1.05, 1)', offset: 0.4 }),
+  style({ transform: 'scale3d(1.05, 0.95, 1)', offset: 0.5 }),
+  style({ transform: 'scale3d(0.95, 1.05, 1)', offset: 0.65 }),
+  style({ transform: 'scale3d(1.05, 0.95, 1)', offset: 0.75 }),
+  style({ transform: 'scale3d(1, 1, 1)', offset: 1 })
+];
+
+@Component({
+  selector: 'app-comment',
+  templateUrl: './comment.component.html',
+  styleUrls: ['./comment.component.scss'],
+  animations: [
+    trigger('slide', [
+      state('void', style({ opacity: 0, transform: 'translateY(-10px)' })),
+      transition('void <=> *', animate(700)),
+    ]),
+    trigger('rubberBand', [
+      transition('* => rubberBand', animate(1000, keyframes(rubberBand))),
+    ])
+  ]
+})
+
+export class CommentComponent implements OnInit {
+  @Input() comment: Comment;
+  isStudent = false;
+  isLoading = true;
+  hasVoted = 0;
+  language: string;
+  animationState: string;
+
+  constructor(protected authenticationService: AuthenticationService,
+    private route: ActivatedRoute,
+    private location: Location,
+    private commentService: CommentService,
+    private notification: NotificationService,
+    private translateService: TranslateService,
+    public dialog: MatDialog,
+    protected langService: LanguageService,
+    private wsCommentService: WsCommentServiceService) {
+    langService.langEmitter.subscribe(lang => {
+      translateService.use(lang);
+      this.language = lang;
+      } );
+  }
+
+  ngOnInit() {
+    if (this.authenticationService.getRole() === 0) {
+      this.isStudent = true;
+    }
+    this.language = localStorage.getItem('currentLang');
+    this.translateService.use(this.language);
+  }
+
+  startAnimation(state_: any): void {
+    if (!this.animationState) {
+      this.animationState = state_;
+    }
+  }
+
+  resetAnimationState(): void {
+    this.animationState = '';
+  }
+
+  setRead(comment: Comment): void {
+    this.comment = this.wsCommentService.toggleRead(comment);
+  }
+
+  setCorrect(comment: Comment): void {
+    this.comment = this.wsCommentService.toggleCorrect(comment);
+  }
+
+  setFavorite(comment: Comment): void {
+    this.comment = this.wsCommentService.toggleFavorite(comment);
+  }
+
+  voteUp(comment: Comment): void {
+    const userId = this.authenticationService.getUser().id;
+    if (this.hasVoted !== 1) {
+      this.wsCommentService.voteUp(comment, userId);
+      this.hasVoted = 1;
+    }
+  }
+
+  voteDown(comment: Comment): void {
+    const userId = this.authenticationService.getUser().id;
+    if (this.hasVoted !== -1) {
+      this.wsCommentService.voteDown(comment, userId);
+      this.hasVoted = -1;
+    }
+  }
+
+  delete(comment: Comment): void {
+    this.commentService.deleteComment(comment.id).subscribe(room => {
+      this.notification.show(`Comment '${comment.body}' successfully deleted.`);
+    });
+  }
+
+  goToFullScreen(element: Element): void {
+    if (element.requestFullscreen) {
+      element.requestFullscreen();
+    }
+  }
+
+  exitFullScreen(): void {
+    if (document.exitFullscreen) {
+      document.exitFullscreen();
+    }
+  }
+
+  openPresentDialog(comment: Comment): void {
+    this.goToFullScreen(document.documentElement);
+    if (this.isStudent === false) {
+      this.wsCommentService.highlight(comment);
+    }
+    const dialogRef = this.dialog.open(PresentCommentComponent, {
+      position: {
+        left: '10px',
+        right: '10px'
+      },
+      maxWidth: '100vw',
+      maxHeight: '100vh',
+      height: '100%',
+      width: '100%'
+    });
+    dialogRef.componentInstance.body = comment.body;
+    dialogRef.afterClosed()
+      .subscribe(result => {
+        this.wsCommentService.lowlight(comment);
+        this.exitFullScreen();
+
+      });
+  }
+}
diff --git a/src/app/components/shared/content-groups/content-groups.component.html b/src/app/components/shared/content-groups/content-groups.component.html
index 5e3f715c19ea95d13c8c6f8c22e720e411bcb2e8..9f29f380bd59352f2d1ddd3b5bbd14c933c32760 100644
--- a/src/app/components/shared/content-groups/content-groups.component.html
+++ b/src/app/components/shared/content-groups/content-groups.component.html
@@ -1,4 +1,4 @@
-<mat-card *ngFor="let contentGroup of contentGroups" (click)="viewContents(contentGroup)">
+<mat-card id="contentGroup" *ngFor="let contentGroup of contentGroups" (click)="viewContents(contentGroup)">
   <mat-card-header>
     <mat-card-title *ngIf="contentGroup.name === 'Default'">
       {{'room-page.default-content-group' | translate}}
diff --git a/src/app/components/shared/content-groups/content-groups.component.scss b/src/app/components/shared/content-groups/content-groups.component.scss
index 4d3c7ce2830ac92e6fae567a70b8593a9508bdd1..3feaad67d10d8986ec94a22d00ea52802abbd351 100644
--- a/src/app/components/shared/content-groups/content-groups.component.scss
+++ b/src/app/components/shared/content-groups/content-groups.component.scss
@@ -1,20 +1,20 @@
-@import '../../../../theme/_variables.scss';
+@import '../../../../theme/default-Theme/_variables.scss';
 
-.mat-card {
-  background-color: #bbdefb;
+#contentGroup {
+  background-color: var(--background-2);
   box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
   overflow: hidden;
   position: relative;
   top: 0;
   text-align: center;
-  transition: all 0.5;
+  transition: all 0.5s;
   margin-top: 10px;
   max-height: 50px;
   padding: 5px;
 
   &:hover {
     cursor: pointer;
-    background-color: mat-color($arsnova-primary, 200);
+    background-color: var(--primary);
     transform: translateZ(20px);
     transform: translateY(-5px);
     transform: scaleY(1.1);
diff --git a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts
index 3305628f67143578ef89083581a8ff0d301341e2..4be55a5e1ad307728e11ce53787fa1448674688e 100644
--- a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts
+++ b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts
@@ -5,8 +5,7 @@ import { UserRole } from '../../../models/user-roles.enum';
 import { NotificationService } from '../../../services/util/notification.service';
 import { RxStompService } from '@stomp/ng2-stompjs';
 import { Message } from '@stomp/stompjs';
-import { CreateFeedback } from '../../../models/messages/create-feedback';
-import { GetFeedback } from '../../../models/messages/get-feedback';
+import { WsFeedbackService } from '../../../services/websockets/ws-feedback.service';
 
 /* ToDo: Use TranslateService */
 
@@ -29,6 +28,7 @@ export class FeedbackBarometerPageComponent implements OnInit {
     private authenticationService: AuthenticationService,
     private notification: NotificationService,
     private rxStompService: RxStompService,
+    private wsFeedbackService: WsFeedbackService,
     private route: ActivatedRoute, ) {
       this.roomId = localStorage.getItem(`roomId`);
     }
@@ -36,16 +36,11 @@ export class FeedbackBarometerPageComponent implements OnInit {
   ngOnInit() {
     this.userRole = this.authenticationService.getRole();
 
-    this.rxStompService.watch(`/room/${this.roomId}/feedback.stream`).subscribe((message: Message) => {
+    this.rxStompService.watch(`/topic/${this.roomId}.feedback.stream`).subscribe((message: Message) => {
       this.parseIncomingMessage(message);
     });
 
-    const getFeedback = new GetFeedback();
-
-    this.rxStompService.publish({
-      destination: `/backend/room/${this.roomId}/feedback.query`,
-      body: JSON.stringify(getFeedback)
-    });
+    this.wsFeedbackService.get(this.roomId);
   }
 
   private updateFeedback(data) {
@@ -57,11 +52,7 @@ export class FeedbackBarometerPageComponent implements OnInit {
   }
 
   submitFeedback(state: number) {
-    const createFeedback = new CreateFeedback(state);
-    this.rxStompService.publish({
-      destination: `/backend/room/${this.roomId}/feedback.command`,
-      body: JSON.stringify(createFeedback)
-    });
+    this.wsFeedbackService.send(state, this.roomId);
   }
 
   toggle() {
diff --git a/src/app/components/shared/footer/footer.component.html b/src/app/components/shared/footer/footer.component.html
index 88fad08f0c25bcf9ccc8a49cb586bbebf49c4ffa..de5fb87f9d45054f73ed516ea3c65e2f43c8b34b 100644
--- a/src/app/components/shared/footer/footer.component.html
+++ b/src/app/components/shared/footer/footer.component.html
@@ -1,5 +1,5 @@
 <footer>
-  <mat-toolbar>
+  <mat-toolbar id="footer-toolbar">
     <button mat-button (click)="navToBlog()">
       <mat-icon>notes</mat-icon>
       Blog
diff --git a/src/app/components/shared/footer/footer.component.scss b/src/app/components/shared/footer/footer.component.scss
index d3f2b1f8f7451107895b9c9204abadd9d8b23356..12f631a965bf22c774e601f4a425209f5ca04fe9 100644
--- a/src/app/components/shared/footer/footer.component.scss
+++ b/src/app/components/shared/footer/footer.component.scss
@@ -1,22 +1,24 @@
 footer {
-    overflow-y: auto;
+  overflow-y: auto;
 }
 
-mat-toolbar {
-  background-color: rgb(240, 240, 240);
+#footer-toolbar {
+  background-color: var(--grey-light);
   height: auto;
+
   &:first-child {
-    padding-left: 0px;
+    padding-left: 0;
   }
+
   &:last-child {
-    padding-right: 0px;
+    padding-right: 0;
   }
 }
 
-button {
+.mat-button {
   min-height: 28px;
   font-size: 12px;
-  color: #80cbc4;
+  color: var(--text-1);
 }
 
 mat-icon {
diff --git a/src/app/components/shared/header/header.component.html b/src/app/components/shared/header/header.component.html
index ad321a5fe44d21a6d4337bdceb91751121a81ad7..3630af2b2935c661916fc3e413dd6e54eac4c785 100644
--- a/src/app/components/shared/header/header.component.html
+++ b/src/app/components/shared/header/header.component.html
@@ -1,4 +1,4 @@
-<mat-toolbar color="primary">
+<mat-toolbar>
   <mat-toolbar-row>
     <button *ngIf="router.url !== '/home'" (click)="goBack()" mat-icon-button>
       <mat-icon aria-label="Go back">keyboard_arrow_left</mat-icon>
@@ -7,6 +7,15 @@
     <span *ngIf="router.url !== '/home'" class="app-title" (click)="goToHomepage()">ARSnova</span>
     <span class="fill-remaining-space"></span>
 
+    <mat-menu #themeMenu="matMenu" [overlapTrigger]="false">
+      <button mat-menu-item (click)="changeTheme('')">{{ 'header.default' | translate }}</button>
+      <button mat-menu-item (click)="changeTheme('dark')">{{ 'header.dark' | translate }}</button>
+    </mat-menu>
+
+    <button mat-icon-button [matMenuTriggerFor]="themeMenu">
+      <mat-icon>palette</mat-icon>
+    </button>
+
     <mat-menu #langMenu="matMenu" [overlapTrigger]="false">
       <button mat-menu-item (click)="useLanguage('de')">{{ 'header.german' | translate }}</button>
       <button mat-menu-item (click)="useLanguage('en')">{{ 'header.english' | translate }}</button>
@@ -46,8 +55,7 @@
       <mat-icon>account_box</mat-icon>
     </button>
     <button mat-icon-button *ngIf="user" [matMenuTriggerFor]="appMenu">
-      <mat-icon *ngIf="user.role === 1" aria-label="Example icon-button with a heart icon" color="accent">record_voice_over</mat-icon>
-      <mat-icon *ngIf="user.role === 0" aria-label="Example icon-button with a heart icon" color="accent">supervisor_account</mat-icon>
+      <mat-icon>account_box</mat-icon>
     </button>
   </mat-toolbar-row>
 </mat-toolbar>
diff --git a/src/app/components/shared/header/header.component.scss b/src/app/components/shared/header/header.component.scss
index b6d58aaad2779116a99d1597954c9743fd4a7d61..b1e7f6dd49fe4fc4dad6b91ec68414a23837343c 100644
--- a/src/app/components/shared/header/header.component.scss
+++ b/src/app/components/shared/header/header.component.scss
@@ -2,3 +2,7 @@
   cursor: pointer;
   margin: 0 auto;
 }
+
+mat-toolbar {
+  background-color: var(--primary);
+}
diff --git a/src/app/components/shared/header/header.component.ts b/src/app/components/shared/header/header.component.ts
index b3bb28fb8b2d72159f3b96d4ca444239d73bbfcc..af51e148a7973d11febe35b944d733dc985ff716 100644
--- a/src/app/components/shared/header/header.component.ts
+++ b/src/app/components/shared/header/header.component.ts
@@ -9,6 +9,7 @@ import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
 import { MatDialog } from '@angular/material';
 import { LoginComponent } from '../login/login.component';
+import { ThemeService } from '../../../../theme/theme.service';
 
 @Component({
   selector: 'app-header',
@@ -17,6 +18,7 @@ import { LoginComponent } from '../login/login.component';
 })
 export class HeaderComponent implements OnInit {
   user: User;
+  themeClass = localStorage.getItem('classNameOfTheme');
 
   constructor(public location: Location,
               private authenticationService: AuthenticationService,
@@ -24,7 +26,9 @@ export class HeaderComponent implements OnInit {
               public router: Router,
               private translationService: TranslateService,
               private langService: LanguageService,
-              public dialog: MatDialog) {
+              public dialog: MatDialog,
+              private themeService: ThemeService
+  ) {
   }
 
   ngOnInit() {
@@ -61,12 +65,21 @@ export class HeaderComponent implements OnInit {
     this.langService.langEmitter.emit(language);
   }
 
-  login(isDozent: boolean) {
+  changeTheme(theme) {
+    this.themeClass = theme;
+    localStorage.setItem('classNameOfTheme', theme);
+    if (theme === '') {
+      this.themeService.setActiveThem('arsnovaTheme');
+    } else {
+      this.themeService.setActiveThem(theme);
+    }
+  }
+
+  login(isLecturer: boolean) {
     const dialogRef = this.dialog.open(LoginComponent, {
       width: '350px'
     });
-    const role = (isDozent === true) ? UserRole.CREATOR : UserRole.PARTICIPANT;
-    dialogRef.componentInstance.role = role;
+    dialogRef.componentInstance.role = (isLecturer === true) ? UserRole.CREATOR : UserRole.PARTICIPANT;
     dialogRef.componentInstance.isStandard = true;
   }
 
diff --git a/src/app/components/shared/list-statistic/list-statistic.component.scss b/src/app/components/shared/list-statistic/list-statistic.component.scss
index fba3ef597b72d78b67351919e6edaf288748d76a..9b037ced37ed9539b22f932fb55619a40a4010c6 100644
--- a/src/app/components/shared/list-statistic/list-statistic.component.scss
+++ b/src/app/components/shared/list-statistic/list-statistic.component.scss
@@ -1,4 +1,4 @@
-table{
+table {
   width: 100%;
 }
 
@@ -24,50 +24,51 @@ table{
 }
 
 mat-header-cell {
-  color: #4db6ac;
-  background-color: #e0e0e0;
+  color: black!important;
+  background-color: var(--grey);
 }
 
 mat-cell {
-  background-color: #E0E0E0;
+  color: black!important;
+  background-color: var(--grey-light);
 }
 
 mat-toolbar {
   height: 20px;
-  background-color: #fff8e1;
+  background-color: var(--card)!important;
 }
 
 .positiveC {
-  background-color: #AED581;
+  background-color: var(--green);
 }
 
 .negativeC {
-  background-color: #FF8A65;
+  background-color: var(--red);
 }
 
 .okayC {
-  background-color: #FFD54F;
+  background-color: var(--red);
 }
 
 .positiveP {
-  background-color: #AED581 !important;
+  background-color: var(--green)!important;
 }
 
 .negativeP {
-  background-color: #FF8A65 !important;
+  background-color: var(--red)!important;
 }
 
 .okayP {
-  background-color: #FFB74D !important;
+  background-color: var(--yellow)!important;
 }
 
 .emptyC {
-  color: #E0E0E0;
-  background: #E0E0E0;
+  color: var(--grey)!important;
+  background: var(--grey);
   pointer-events: none;
 }
 
 .emptyCC {
-  background: #E0E0E0;
+  background: var(--grey) ;
   pointer-events: none;
 }
diff --git a/src/app/components/shared/login/login.component.html b/src/app/components/shared/login/login.component.html
index 01e85e02defd5f7310021b121909e18c0ef8323a..055c6116efc7da46d691af798b4cbf498c27a8bb 100644
--- a/src/app/components/shared/login/login.component.html
+++ b/src/app/components/shared/login/login.component.html
@@ -24,7 +24,7 @@
     </button>
   </div>
   <div fxLayout="row">
-    <p>Noch keinen Account?</p>
+    <p>{{ 'login-page.not-registered' | translate }}</p>
     <button mat-button color="primary" class="regButton" (click)="openRegisterDialog()">
       {{ 'login-page.register' | translate }}
     </button>
diff --git a/src/app/components/shared/login/login.component.scss b/src/app/components/shared/login/login.component.scss
index bdb5da25a13399581499b15b859b333f9d59bbbc..979c20185f30306a2ad7c51b03a80c348936bd6a 100644
--- a/src/app/components/shared/login/login.component.scss
+++ b/src/app/components/shared/login/login.component.scss
@@ -1,16 +1,21 @@
 .pwReset {
-  padding-left: 0px;
+  padding-left: 0;
 }
 
 .regButton {
   margin-top: 20px;
-  padding: 0px;
+  padding: 0;
 }
 
 p {
   font-size: small;
-  margin-bottom: 0px;
-  margin-top: 30px;
-  margin-left: 30px;
-  margin-right: 5px;
-}
\ No newline at end of file
+  margin: 30px 5px 0 30px;
+}
+
+input:-webkit-autofill {
+  background-color: var(--dialog);
+  -webkit-box-shadow: 0 0 0 1000px var(--dialog) inset;
+}
+
+
+
diff --git a/src/app/components/shared/login/login.component.ts b/src/app/components/shared/login/login.component.ts
index e05319c1590dc2c6799ea78eba4d9d11f3b508de..9bda7d3ea12443308ec89a4d841200805ffda5b5 100644
--- a/src/app/components/shared/login/login.component.ts
+++ b/src/app/components/shared/login/login.component.ts
@@ -9,6 +9,7 @@ import { TranslateService } from '@ngx-translate/core';
 import { UserActivationComponent } from '../../home/_dialogs/user-activation/user-activation.component';
 import { PasswordResetComponent } from '../../home/_dialogs/password-reset/password-reset.component';
 import { RegisterComponent } from '../../home/_dialogs/register/register.component';
+import { ThemeService } from '../../../../theme/theme.service';
 
 export class LoginErrorStateMatcher implements ErrorStateMatcher {
   isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
@@ -40,6 +41,7 @@ export class LoginComponent implements OnInit, OnChanges {
               public router: Router,
               private translationService: TranslateService,
               public notificationService: NotificationService,
+              private themeService: ThemeService,
               public dialog: MatDialog,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
@@ -105,6 +107,7 @@ export class LoginComponent implements OnInit, OnChanges {
       if (this.isStandard) {
         if (this.role === UserRole.CREATOR) {
           this.router.navigate(['creator']);
+          this.themeService.setActiveThem('dark');
         } else {
           this.router.navigate(['participant']);
         }
diff --git a/src/app/components/shared/room-list/room-list.component.html b/src/app/components/shared/room-list/room-list.component.html
index 6b7c0dffe8f87dbec1bffcdefd7148092f96f790..cc6dbe0a5acd5927d3cd19c0f98505c9d0311d85 100644
--- a/src/app/components/shared/room-list/room-list.component.html
+++ b/src/app/components/shared/room-list/room-list.component.html
@@ -1,26 +1,29 @@
-<mat-expansion-panel [disabled]="true" class="matPanelHeader">
-  <mat-expansion-panel-header>
-    <mat-panel-title class="headerTitle">Name</mat-panel-title>
-    <mat-panel-description>Session-Id</mat-panel-description>
-  </mat-expansion-panel-header>
-</mat-expansion-panel>
-<mat-expansion-panel *ngFor="let room of rooms" class="matPanel">
-  <mat-expansion-panel-header class="matPanelListHeader">
-    <button mat-button color="primary" routerLink="/{{ baseUrl }}/room/{{ room.shortId }}">
-      <mat-icon>input</mat-icon>
-    </button>
-    <mat-panel-title>
-      {{ room.name }}
-    </mat-panel-title>
-    <mat-panel-description>
-      {{ room.shortId.slice(0,4) }} {{  room.shortId.slice(4,8) }}
-    </mat-panel-description>
-  </mat-expansion-panel-header>
-  <p>
-    {{ room.description }}
-  </p>
-</mat-expansion-panel>
-<mat-card *ngIf="rooms && rooms.length === 0">
+<div *ngIf="rooms && rooms.length != 0">
+  <mat-expansion-panel [disabled]="true" id="matPanelHeader">
+    <mat-expansion-panel-header>
+      <mat-panel-title class="headerTitle">Name</mat-panel-title>
+      <mat-panel-description class="headerTitle">Session-Id</mat-panel-description>
+    </mat-expansion-panel-header>
+  </mat-expansion-panel>
+  <mat-expansion-panel *ngFor="let room of rooms" class="matPanel">
+    <mat-expansion-panel-header class="matPanelListHeader">
+      <button mat-button routerLink="/{{ baseUrl }}/room/{{ room.shortId }}">
+        <mat-icon>input</mat-icon>
+      </button>
+      <mat-panel-title class="panelTitle">
+        {{ room.name }}
+      </mat-panel-title>
+      <mat-panel-description class="panelTitle">
+        {{ room.shortId.slice(0,4) }} {{  room.shortId.slice(4,8) }}
+      </mat-panel-description>
+    </mat-expansion-panel-header>
+    <p>
+      {{ room.description }}
+    </p>
+  </mat-expansion-panel>
+</div>
+
+<mat-card id="no-sessions-card" *ngIf="rooms && rooms.length === 0">
   <mat-card-header>
     <mat-card-title *ngIf="baseUrl === 'creator'">Sie haben noch keine Sessions erstellt!</mat-card-title>
     <mat-card-title *ngIf="baseUrl === 'participant'">Sie sind noch keiner Session beigetreten!</mat-card-title>
diff --git a/src/app/components/shared/room-list/room-list.component.scss b/src/app/components/shared/room-list/room-list.component.scss
index a269ce031e7103581728d800bf1c3eee57b7cedd..476d30188f17d8d945c76b08b24ffcd4fbe87360 100644
--- a/src/app/components/shared/room-list/room-list.component.scss
+++ b/src/app/components/shared/room-list/room-list.component.scss
@@ -1,5 +1,6 @@
 button {
   margin-right: 10px;
+  color: var(--primary);
 }
 
 .mat-expansion-panel-header-description {
@@ -7,18 +8,21 @@ button {
   align-items: center;
 }
 
+
 .matPanel {
-  background-color: #cfd8dc;
+  background-color: var(--grey);
   margin-bottom: 5px;
+  color: black!important;
 }
 
-.matPanelHeader {
-  background-color: #bbdefb;
+#matPanelHeader {
+  background-color: var(--grey-light);
   margin-bottom: 5px;
+  color: white;
 }
 
 .matPanelListHeader {
-  background-color: #cfd8dc !important;
+  background-color: var(--grey) !important;
 }
 
 mat-panel-title {
@@ -28,14 +32,21 @@ mat-panel-title {
 }
 
 .headerTitle {
-  width: 8%!important;
+  width: 8%;
+  color: var(--primary)!important;
+}
+
+.panelTitle {
+  width: 8%;
+  color: black!important;
 }
 
+
 mat-card-title {
   text-align: center;
 }
 
-mat-card {
-  background-color: #cfd8dc;
-  color: #4db6ac;
+#no-sessions-card {
+  background-color: var(--grey);
+  color: var(--primary);
 }
diff --git a/src/app/components/shared/shared.module.ts b/src/app/components/shared/shared.module.ts
index e10dbff2d52e6f3bbfcc9f0b2d12db1bfd8e9351..13a09ef9f2f855eedc99ec50854a9fa60a48de42 100644
--- a/src/app/components/shared/shared.module.ts
+++ b/src/app/components/shared/shared.module.ts
@@ -11,7 +11,7 @@ import { RoomPageComponent } from './room-page/room-page.component';
 import { StatisticsPageComponent } from './statistics-page/statistics-page.component';
 import { AnswerEditComponent } from '../creator/_dialogs/answer-edit/answer-edit.component';
 import { ContentDeleteComponent } from '../creator/_dialogs/content-delete/content-delete.component';
-import { CommentCreatePageComponent } from '../participant/comment-create-page/comment-create-page.component';
+import { CommentPageComponent } from './comment-page/comment-page.component';
 import { EssentialsModule } from '../essentials/essentials.module';
 import { SharedRoutingModule } from './shared-routing.module';
 import { ListStatisticComponent } from './list-statistic/list-statistic.component';
@@ -21,6 +21,9 @@ import { RoomJoinComponent } from './room-join/room-join.component';
 import { RoomCreateComponent } from './_dialogs/room-create/room-create.component';
 import { LoginComponent } from './login/login.component';
 import { StatisticHelpComponent } from './_dialogs/statistic-help/statistic-help.component';
+import { CommentComponent } from './comment/comment.component';
+import { SubmitCommentComponent } from './_dialogs/submit-comment/submit-comment.component';
+import { PresentCommentComponent } from './_dialogs/present-comment/present-comment.component';
 
 @NgModule({
   imports: [
@@ -41,14 +44,17 @@ import { StatisticHelpComponent } from './_dialogs/statistic-help/statistic-help
     FeedbackBarometerPageComponent,
     FooterComponent,
     FeedbackBarometerPageComponent,
-    CommentCreatePageComponent,
+    CommentPageComponent,
     CommentListComponent,
     StatisticsPageComponent,
     ListStatisticComponent,
     StatisticComponent,
     RoomCreateComponent,
     LoginComponent,
-    StatisticHelpComponent
+    StatisticHelpComponent,
+    CommentComponent,
+    SubmitCommentComponent,
+    PresentCommentComponent
   ],
   exports: [
     RoomJoinComponent,
@@ -62,14 +68,18 @@ import { StatisticHelpComponent } from './_dialogs/statistic-help/statistic-help
     FeedbackBarometerPageComponent,
     FooterComponent,
     FeedbackBarometerPageComponent,
-    CommentCreatePageComponent,
+    CommentPageComponent,
     CommentListComponent,
-    StatisticsPageComponent
+    StatisticsPageComponent,
+    SubmitCommentComponent,
+    PresentCommentComponent
   ],
   entryComponents: [
     RoomCreateComponent,
     LoginComponent,
-    StatisticHelpComponent
+    StatisticHelpComponent,
+    SubmitCommentComponent,
+    PresentCommentComponent
   ]
 })
 export class SharedModule {
diff --git a/src/app/components/shared/statistic/statistic.component.scss b/src/app/components/shared/statistic/statistic.component.scss
index d07ab6d241c8f65ef921219580f790812601080f..b3d28b34419822d0923029c4b87479996438430e 100644
--- a/src/app/components/shared/statistic/statistic.component.scss
+++ b/src/app/components/shared/statistic/statistic.component.scss
@@ -1,12 +1,12 @@
 mat-card {
   width: 800px;
   max-width: 90%;
-  background-color: #fff8e1 !important;
+  background-color: var(--card)!important;
 }
 
 mat-toolbar {
   height: 15px;
-  background-color: #fff8e1;
+  background-color: var(--card)!important;
 }
 
 .mat-icon-button {
@@ -21,3 +21,11 @@ mat-icon {
   width: 40px;
   line-height: 100%!important;
 }
+
+h4 {
+  color: var(--text-1);
+}
+
+mat-list-item {
+  color: var(--text-1)!important;
+}
diff --git a/src/app/components/shared/statistics-page/statistics-page.component.scss b/src/app/components/shared/statistics-page/statistics-page.component.scss
index 08972d1c030798333897c9ba181b91bf0b267b91..632a4b0da76dfbe912a359a0936d0af532abe3e2 100644
--- a/src/app/components/shared/statistics-page/statistics-page.component.scss
+++ b/src/app/components/shared/statistics-page/statistics-page.component.scss
@@ -2,5 +2,9 @@ mat-card {
   width: 800px;
   max-width: 90%;
   min-height: 300px;
-  background-color: #fff8e1 !important;
+  background-color: var(--card)!important;
+}
+
+h2 {
+  color: var(--text-1);
 }
diff --git a/src/app/models/comment.ts b/src/app/models/comment.ts
index aed78ce9a3d621aaf7524545b47ab305c579a924..17e3a638a94abb4e5562f2c0241b0da49f1f6cd2 100644
--- a/src/app/models/comment.ts
+++ b/src/app/models/comment.ts
@@ -3,8 +3,36 @@ export class Comment {
   roomId: string;
   userId: string;
   revision: string;
-  subject: string;
   body: string;
   read: boolean;
-  creationTimestamp: number;
+  correct: boolean;
+  favorite: boolean;
+  timestamp: Date;
+  score: number;
+  createdFromLecturer: boolean;
+  highlighted: boolean;
+
+  constructor(roomId: string = '',
+              userId: string = '',
+              body: string = '',
+              read: boolean = false,
+              correct: boolean = false,
+              favorite: boolean = false,
+              creationTimestamp: Date = null,
+              score: number = 0,
+              createdFromLecturer = false,
+              highlighted: boolean = false) {
+    this.id = '';
+    this.roomId = roomId;
+    this.userId = userId;
+    this.revision = '';
+    this.body = body;
+    this.read = read;
+    this.correct = correct;
+    this.favorite = favorite;
+    this.timestamp = creationTimestamp;
+    this.score = score;
+    this.createdFromLecturer = createdFromLecturer;
+    this.highlighted = highlighted;
+  }
 }
diff --git a/src/app/models/messages/abstract-vote.ts b/src/app/models/messages/abstract-vote.ts
new file mode 100644
index 0000000000000000000000000000000000000000..655ab105d2905c998728ab929be812aded446668
--- /dev/null
+++ b/src/app/models/messages/abstract-vote.ts
@@ -0,0 +1,17 @@
+export abstract class AbstractVote {
+  type: string;
+  payload: {
+    userId: string;
+    commentId: string;
+    vote: number;
+  };
+
+  protected constructor(type: string, userId: string, commentId: string, vote: number) {
+    this.type = type;
+    this.payload = {
+      userId: userId,
+      commentId: commentId,
+      vote: vote
+    };
+  }
+}
diff --git a/src/app/models/messages/create-comment.ts b/src/app/models/messages/create-comment.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ca7c5fa54fa4f92461aea73de49b1906f4b2b26a
--- /dev/null
+++ b/src/app/models/messages/create-comment.ts
@@ -0,0 +1,17 @@
+export class CreateComment {
+    type: string;
+    payload: {
+        roomId: string;
+        creatorId: string;
+        body: string;
+    };
+
+    constructor(roomId: string, creatorId: string, body: string) {
+        this.type = 'CreateComment';
+        this.payload = {
+            roomId: roomId,
+            creatorId: creatorId,
+            body: body
+        };
+    }
+}
diff --git a/src/app/models/messages/down-vote.ts b/src/app/models/messages/down-vote.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5dc52ab375931fc77edc33cb6e9162727767f490
--- /dev/null
+++ b/src/app/models/messages/down-vote.ts
@@ -0,0 +1,14 @@
+import { AbstractVote } from './abstract-vote';
+
+export class DownVote extends AbstractVote {
+  type: string;
+  payload: {
+    userId: string;
+    commentId: string;
+    vote: number;
+  };
+
+  constructor(userId: string, commentId: string) {
+    super('Downvote', userId, commentId, -1);
+  }
+}
diff --git a/src/app/models/messages/highlight-comment.ts b/src/app/models/messages/highlight-comment.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8c884ef2b3ad70bb2a16bed780e35d7b28fbcdba
--- /dev/null
+++ b/src/app/models/messages/highlight-comment.ts
@@ -0,0 +1,15 @@
+export class HighlightComment {
+  type: string;
+  payload: {
+    id: string;
+    lights: boolean;
+  };
+
+  constructor(id: string, lights: boolean) {
+    this.type = 'HighlightComment';
+    this.payload = {
+      id: id,
+      lights: lights
+    };
+  }
+}
diff --git a/src/app/models/messages/patch-comment.ts b/src/app/models/messages/patch-comment.ts
new file mode 100644
index 0000000000000000000000000000000000000000..faec58f4e2d9685438749606abb7b352606140b0
--- /dev/null
+++ b/src/app/models/messages/patch-comment.ts
@@ -0,0 +1,17 @@
+import { TSMap } from 'typescript-map';
+
+export class PatchComment {
+  type: string;
+  payload: {
+      id: string;
+      changes: TSMap<string, any>;
+  };
+
+  constructor(id: string, changes: TSMap<string, any>) {
+      this.type = 'PatchComment';
+      this.payload = {
+        id: id,
+        changes: changes
+      };
+  }
+}
diff --git a/src/app/models/messages/up-vote.ts b/src/app/models/messages/up-vote.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eef91a512f030870eb7e92492289772de1adb1fe
--- /dev/null
+++ b/src/app/models/messages/up-vote.ts
@@ -0,0 +1,14 @@
+import { AbstractVote } from './abstract-vote';
+
+export class UpVote extends AbstractVote {
+  type: string;
+  payload: {
+    userId: string;
+    commentId: string;
+    vote: number;
+  };
+
+  constructor(userId: string, commentId: string) {
+    super('Upvote', userId, commentId, 1);
+  }
+}
diff --git a/src/app/models/room.ts b/src/app/models/room.ts
index e657ecd236f482c25c1272098e2145ab38083a07..1ce435e6e64017bea7e59d6953d8ac4728fb4cbb 100644
--- a/src/app/models/room.ts
+++ b/src/app/models/room.ts
@@ -1,12 +1,36 @@
 import { ContentGroup } from './content-group';
+import { TSMap } from 'typescript-map';
 
 export class Room {
   id: string;
   revision: string;
+  ownerId: string;
   shortId: string;
   abbreviation: string;
   name: string;
   description: string;
   closed: boolean;
   contentGroups: ContentGroup[];
+  extensions: TSMap<string, TSMap<string, any>>;
+
+  constructor(
+    ownerId: string = '',
+    shortId: string = '',
+    abbreviation: string = '',
+    name: string = '',
+    description: string = '',
+    closed: boolean = false,
+    contentGroups: ContentGroup[] = [],
+    extensions: TSMap<string, TSMap<string, any>> = new TSMap()
+  ) {
+    this.id = '',
+    this.ownerId = ownerId;
+    this.shortId = shortId;
+    this.abbreviation = abbreviation;
+    this.name = name,
+    this.description = description;
+    this.closed = closed;
+    this.contentGroups = contentGroups;
+    this.extensions = extensions;
+  }
 }
diff --git a/src/app/models/vote.ts b/src/app/models/vote.ts
new file mode 100644
index 0000000000000000000000000000000000000000..74e0b39fef99919830e07790549e3aa44911aa6f
--- /dev/null
+++ b/src/app/models/vote.ts
@@ -0,0 +1,15 @@
+export class Vote {
+  private id: string;
+  private userId: string;
+  private commentId: string;
+  private vote: number;
+
+  constructor(userId: string ,
+              commentId: string,
+              vote: number) {
+    this.id = '';
+    this.userId = userId;
+    this.commentId = commentId;
+    this.vote = vote;
+  }
+}
diff --git a/src/app/rx-stomp.config.ts b/src/app/rx-stomp.config.ts
index 70326222a0d4eb3bb8de6041633a864871acfda1..139561d1ffe74f664ac97b9bbea5f2883b9d88a3 100644
--- a/src/app/rx-stomp.config.ts
+++ b/src/app/rx-stomp.config.ts
@@ -1,9 +1,14 @@
-import { InjectableRxStompConfig } from '@stomp/ng2-stompjs';
+import { RxStompConfig } from '@stomp/rx-stomp';
 
-export const myRxStompConfig: InjectableRxStompConfig = {
+export const ARSRxStompConfig: RxStompConfig = {
   // Which server?
   brokerURL: `ws://${window.location.hostname}:8080/ws/websocket`,
 
+  connectHeaders: {
+    login: 'guest',
+    password: 'guest'
+  },
+
   // How often to heartbeat?
   // Interval in milliseconds, set to 0 to disable
   heartbeatIncoming: 0, // Typical value 0 - disabled
@@ -18,6 +23,6 @@ export const myRxStompConfig: InjectableRxStompConfig = {
   // It can be quite verbose, not recommended in production
   // Skip this key to stop logging to console
   debug: (msg: string): void => {
-    // console.log(new Date(), 'STOMP debug: ' + msg);
+    console.log(new Date(), 'STOMP debug: ' + msg);
   }
 };
diff --git a/src/app/services/http/authentication.service.ts b/src/app/services/http/authentication.service.ts
index 2ac6be1b6f48bbb74a695c8675540d5d2d394a14..32896f412ac95f7bcf050064e2841e7d7681ef40 100644
--- a/src/app/services/http/authentication.service.ts
+++ b/src/app/services/http/authentication.service.ts
@@ -130,4 +130,8 @@ export class AuthenticationService {
   get watchUser() {
     return this.user.asObservable();
   }
+
+  getUserAsSubject(): BehaviorSubject<User> {
+    return this.user;
+  }
 }
diff --git a/src/app/services/http/comment.service.ts b/src/app/services/http/comment.service.ts
index 8f404e05bb18e0a4f0f36e2dea2378cca370fba5..df643a7db61f9f15b3497c94ff7bcc1ee4820c68 100644
--- a/src/app/services/http/comment.service.ts
+++ b/src/app/services/http/comment.service.ts
@@ -17,14 +17,14 @@ export class CommentService extends BaseHttpService {
     find: '/find'
   };
 
-  constructor( private http: HttpClient ) {
+  constructor(private http: HttpClient) {
     super();
   }
 
   getComment(commentId: string): Observable<Comment> {
-    const connectionUrl = `${ this.apiUrl.base }${ this.apiUrl.comment }/~${ commentId }`;
+    const connectionUrl = `${this.apiUrl.base}${this.apiUrl.comment}/~${commentId}`;
     return this.http.get<Comment>(connectionUrl, httpOptions).pipe(
-      tap (_ => ''),
+      tap(_ => ''),
       catchError(this.handleError<Comment>('addComment'))
     );
   }
@@ -32,18 +32,18 @@ export class CommentService extends BaseHttpService {
   addComment(comment: Comment): Observable<Comment> {
     const connectionUrl = this.apiUrl.base + this.apiUrl.comment + '/';
     return this.http.post<Comment>(connectionUrl,
-      { roomId: comment.roomId, subject: comment.subject, body: comment.body,
-        read: comment.read, creationTimestamp: comment.creationTimestamp
+      { roomId: comment.roomId, body: comment.body,
+        read: comment.read, creationTimestamp: comment.timestamp
       }, httpOptions).pipe(
-      tap (_ => ''),
-      catchError(this.handleError<Comment>('addComment'))
-    );
+        tap(_ => ''),
+        catchError(this.handleError<Comment>('addComment'))
+      );
   }
 
   deleteComment(commentId: string): Observable<Comment> {
-    const connectionUrl = `${ this.apiUrl.base + this.apiUrl.comment }/${ commentId }`;
+    const connectionUrl = `${this.apiUrl.base + this.apiUrl.comment}/${commentId}`;
     return this.http.delete<Comment>(connectionUrl, httpOptions).pipe(
-      tap (_ => ''),
+      tap(_ => ''),
       catchError(this.handleError<Comment>('deleteComment'))
     );
   }
@@ -54,16 +54,24 @@ export class CommentService extends BaseHttpService {
       properties: { roomId: roomId },
       externalFilters: {}
     }, httpOptions).pipe(
-      tap (_ => ''),
+      tap(_ => ''),
       catchError(this.handleError<Comment[]>('getComments', []))
     );
   }
 
   updateComment(comment: Comment): Observable<any> {
-    const connectionUrl = this.apiUrl + this.apiUrl.comment + '/' + comment.id;
+    const connectionUrl = this.apiUrl.base + this.apiUrl.comment + '/' + comment.id;
     return this.http.put(connectionUrl, comment, httpOptions).pipe(
       tap(_ => ''),
       catchError(this.handleError<any>('updateComment'))
     );
   }
+
+  deleteCommentsByRoomId(roomId: string): Observable<Comment> {
+    const connectionUrl = `${this.apiUrl.base + this.apiUrl.comment}/byRoom?roomId=${roomId}`;
+    return this.http.delete<Comment>(connectionUrl, httpOptions).pipe(
+      tap(_ => ''),
+      catchError(this.handleError<Comment>('deleteComment'))
+    );
+  }
 }
diff --git a/src/app/services/http/room.service.ts b/src/app/services/http/room.service.ts
index 3ab13d5ae45ded893b7e6885d841135dadeb473c..610f5bc7b267b1a77f3ae36f7eed857f16e4ad81 100644
--- a/src/app/services/http/room.service.ts
+++ b/src/app/services/http/room.service.ts
@@ -5,6 +5,7 @@ import { Observable } from 'rxjs';
 import { catchError, tap, map } from 'rxjs/operators';
 import { AuthenticationService } from './authentication.service';
 import { BaseHttpService } from './base-http.service';
+import { TSMap } from 'typescript-map';
 
 const httpOptions = {
   headers: new HttpHeaders({})
@@ -48,16 +49,17 @@ export class RoomService extends BaseHttpService {
   }
 
   addRoom(room: Room): Observable<Room> {
+    delete room.id;
+    delete room.revision;
     const connectionUrl = this.apiUrl.base + this.apiUrl.rooms + '/';
-    return this.http.post<Room>(connectionUrl, {
-      ownerId: this.authService.getUser().id,
-      abbreviation: room.abbreviation, name: room.name, closed: room.closed, description: room.description
-    }, httpOptions);
+    room.ownerId = this.authService.getUser().id;
+    return this.http.post<Room>(connectionUrl, room, httpOptions);
   }
 
   getRoom(id: string): Observable<Room> {
     const connectionUrl = `${ this.apiUrl.base +  this.apiUrl.rooms }/${ id }`;
     return this.http.get<Room>(connectionUrl).pipe(
+      map(room => this.parseExtensions(room)),
       map(room => this.parseDefaultContentGroup(room)),
       tap(room => this.setRoomId(room)),
       catchError(this.handleError<Room>(`getRoom keyword=${ id }`))
@@ -105,6 +107,15 @@ export class RoomService extends BaseHttpService {
     return room;
   }
 
+  parseExtensions(room: Room): Room {
+    if (room.extensions) {
+      let extensions: TSMap<string, TSMap<string, any>> = new TSMap();
+      extensions = room.extensions;
+      room.extensions = extensions;
+    }
+    return room;
+  }
+
   setRoomId(room: Room): void {
     localStorage.setItem('roomId', room.id);
   }
diff --git a/src/app/services/websockets/ws-comment-service.service.spec.ts b/src/app/services/websockets/ws-comment-service.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..02c67cb49c83d3beda7ce75f172f69541436b821
--- /dev/null
+++ b/src/app/services/websockets/ws-comment-service.service.spec.ts
@@ -0,0 +1,13 @@
+/* import { TestBed } from '@angular/core/testing';
+
+import { WsCommentServiceService } from './ws-comment-service.service';
+
+describe('WsCommentServiceService', () => {
+  beforeEach(() => TestBed.configureTestingModule({}));
+
+  it('should be created', () => {
+    const service: WsCommentServiceService = TestBed.get(WsCommentServiceService);
+    expect(service).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/services/websockets/ws-comment-service.service.ts b/src/app/services/websockets/ws-comment-service.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..43f47fd68b5d1a206bf8dd8ea8e303586c5a9865
--- /dev/null
+++ b/src/app/services/websockets/ws-comment-service.service.ts
@@ -0,0 +1,79 @@
+import { Injectable } from '@angular/core';
+import { Comment } from '../../models/comment';
+import { WsConnectorService } from '../../services/websockets/ws-connector.service';
+import { CreateComment } from '../../models/messages/create-comment';
+import { PatchComment } from '../../models/messages/patch-comment';
+import { HighlightComment } from '../../models/messages/highlight-comment';
+import { TSMap } from 'typescript-map';
+import { UpVote } from '../../models/messages/up-vote';
+import { DownVote } from '../../models/messages/down-vote';
+import { Observable } from 'rxjs';
+import { IMessage } from '@stomp/stompjs';
+
+
+@Injectable({
+  providedIn: 'root'
+})
+export class WsCommentServiceService {
+
+  constructor(private wsConnector: WsConnectorService) { }
+
+  add(comment: Comment): void {
+    const message = new CreateComment(comment.roomId, comment.userId, comment.body);
+    this.wsConnector.send(`/queue/comment.command.create`, JSON.stringify(message));
+  }
+
+  toggleRead(comment: Comment): Comment {
+    console.log(comment);
+    comment.read = !comment.read;
+    const changes = new TSMap<string, any>();
+    changes.set('read', comment.read);
+    this.patchComment(comment, changes);
+    return comment;
+  }
+
+  toggleFavorite(comment: Comment): Comment {
+    comment.favorite = !comment.favorite;
+    const changes = new TSMap<string, any>();
+    changes.set('favorite', comment.favorite);
+    this.patchComment(comment, changes);
+    return comment;
+  }
+
+  toggleCorrect(comment: Comment): Comment {
+    comment.correct = !comment.correct;
+    const changes = new TSMap<string, any>();
+    changes.set('correct', comment.correct);
+    this.patchComment(comment, changes);
+    return comment;
+  }
+
+  voteUp(comment: Comment, userId: string): void {
+    const message = new UpVote(userId, comment.id);
+    this.wsConnector.send(`/queue/vote.command.upvote`, JSON.stringify(message));
+  }
+
+  voteDown(comment: Comment, userId: string): void {
+    const message = new DownVote(userId, comment.id);
+    this.wsConnector.send(`/queue/vote.command.downvote`, JSON.stringify(message));
+  }
+
+  private patchComment(comment: Comment, changes: TSMap<string, any>): void {
+    const message = new PatchComment(comment.id, changes);
+    this.wsConnector.send(`/queue/comment.command.patch`, JSON.stringify(message));
+  }
+
+  highlight(comment: Comment) {
+    const message = new HighlightComment(comment.id, true);
+    this.wsConnector.send(`/queue/comment.command.highlight`, JSON.stringify(message));
+  }
+
+  lowlight(comment: Comment) {
+    const message = new HighlightComment(comment.id, false);
+    this.wsConnector.send(`/queue/comment.command.highlight`, JSON.stringify(message));
+  }
+
+  getCommentStream(roomId: string): Observable<IMessage> {
+    return this.wsConnector.getWatcher(`/topic/${roomId}.comment.stream`);
+  }
+}
diff --git a/src/app/services/websockets/ws-connector.service.ts b/src/app/services/websockets/ws-connector.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..32007e8a96be1b532b7f186c53bae1e303201157
--- /dev/null
+++ b/src/app/services/websockets/ws-connector.service.ts
@@ -0,0 +1,58 @@
+import { Injectable } from '@angular/core';
+import { RxStomp } from '@stomp/rx-stomp';
+import { AuthenticationService } from '../http/authentication.service';
+import { User } from '../../models/user';
+import { ARSRxStompConfig } from '../../rx-stomp.config';
+import { Observable } from 'rxjs';
+import { IMessage, StompHeaders } from '@stomp/stompjs';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class WsConnectorService {
+  private client: RxStomp;
+
+  private headers = {
+    'content-type': 'application/json',
+    'ars-user-id': ''
+  };
+
+  constructor(
+    private authService: AuthenticationService
+  ) {
+    this.client = new RxStomp();
+    const userSubject = authService.getUserAsSubject();
+    userSubject.subscribe((user: User) => {
+      if (this.client.connected) {
+        this.client.deactivate();
+      }
+
+      if (user && user.id) {
+        const copiedConf = ARSRxStompConfig;
+        copiedConf.connectHeaders.token = user.token;
+        this.headers = {
+          'content-type': 'application/json',
+          'ars-user-id': '' + user.id
+        };
+        this.client.configure(copiedConf);
+        this.client.activate();
+      }
+    });
+  }
+
+  public send(destination: string, body: string): void {
+    if (this.client.connected) {
+      this.client.publish({
+        destination: destination,
+        body: body,
+        headers: this.headers
+      });
+    }
+  }
+
+  public getWatcher(topic: string): Observable<IMessage> {
+    if (this.client.connected) {
+      return this.client.watch(topic, this.headers);
+    }
+  }
+}
diff --git a/src/app/services/websockets/ws-feedback.service.ts b/src/app/services/websockets/ws-feedback.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..668095d1c8ca16d28261c50c2f1697374b838fb0
--- /dev/null
+++ b/src/app/services/websockets/ws-feedback.service.ts
@@ -0,0 +1,22 @@
+import { Injectable } from '@angular/core';
+import { WsConnectorService } from '../../services/websockets/ws-connector.service';
+import { CreateFeedback } from '../../models/messages/create-feedback';
+import { GetFeedback } from '../../models/messages/get-feedback';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class WsFeedbackService {
+  constructor(private wsConnector: WsConnectorService) {}
+
+  send(feedback: number, roomId: string) {
+    const createFeedback = new CreateFeedback(feedback);
+    this.wsConnector.send(`/backend/queue/${roomId}.feedback.command`, JSON.stringify(createFeedback));
+  }
+
+  get(roomId: string) {
+    const getFeedback = new GetFeedback();
+
+    this.wsConnector.send(`/backend/queue/${roomId}.feedback.query`, JSON.stringify(getFeedback));
+  }
+}
diff --git a/src/assets/i18n/creator/de.json b/src/assets/i18n/creator/de.json
index bbae8df7d3c87e69c4451049b6fed64d86d015c2..33ff55162314538d6e44f3c5c537f38b0bbf12b9 100644
--- a/src/assets/i18n/creator/de.json
+++ b/src/assets/i18n/creator/de.json
@@ -10,17 +10,21 @@
     "create-content": "Frage erstellen",
     "live-feedback": "Live Feedback",
     "answer-statistics": "Statistiken",
-    "edit-room": "Session bearbeiten",
     "delete-room": "Session löschen",
     "sure": "Sind Sie sicher?",
     "reallySession": "Wollen Sie die Session ",
     "reallyContent": "Wollen Sie die Frage ",
     "really2": " wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
+    "deleted": " erfolgreich gelöscht.",
     "abort": "Abbrechen",
     "update": "Update",
+    "changes-successful": "Änderungen erfolgreich.",
     "default-content-group": "Standard",
     "description": "Beschreibung",
-    "present": "Präsentieren"
+    "present": "Präsentieren",
+    "session-settings": "Session Einstellungen",
+    "general": "Allgemein",
+    "threshold": "Schwellenwert für sichtbare Kommentare: "
   },
   "content": {
     "content": "Frage",
@@ -74,5 +78,22 @@
     "good": "Gut",
     "improvable": "Luft nach oben",
     "no-answers": "Keine Antworten"
+  },
+  "comment-page": {
+    "enter-title": "Titel",
+    "enter-comment": "Kommentar",
+    "send": "Senden",
+    "abort": "Abbrechen",
+    "error-comment": "Bitte geben Sie einen Kommentar ein.",
+    "error-title": "Bitte geben Sie einen Titel ein.",
+    "error-both-fields": "Bitte füllen Sie alle Felder aus.",
+    "delimiter": "Bitte wählen Sie ein Format!",
+    "comma": "Microsoft Excel",
+    "semicolon": "Standard CSV",
+    "export": "Exportieren"
+  },
+  "comment-list-page": {
+    "search": "Suchen",
+    "cancel": "Abbrechen"
   }
 }
diff --git a/src/assets/i18n/creator/en.json b/src/assets/i18n/creator/en.json
index f1c72bc9b22e65b458c19675a2e15d55cc1d9fc5..cc25158a4f28fd20ad4a0c2ffbed41a6aa8dbacb 100644
--- a/src/assets/i18n/creator/en.json
+++ b/src/assets/i18n/creator/en.json
@@ -10,17 +10,21 @@
     "create-content": "Create content",
     "live-feedback": "Live feedback",
     "answer-statistics": "Statistics",
-    "edit-room": "Edit session",
     "delete-room": "Delete session",
     "sure": "Are you sure?",
     "reallySession": "Do you really want to delete session ",
     "reallyContent": "Do you really want to delete content ",
     "really2": "? This action can not be undone.",
+    "deleted": " successfully deleted.",
     "abort": "Abort",
     "update": "Update",
+    "changes-successful": "Successfully updated.",
     "default-content-group": "Default",
     "description": "Description",
-    "present": "Present"
+    "present": "Present",
+    "session-settings": "Session settings",
+    "general": "General",
+    "threshold": "Threshold for visible comments: "
   },
   "content": {
     "content": "Content",
@@ -74,5 +78,22 @@
     "good": "Good",
     "improvable": "Improvable",
     "no-answers": "No answers"
+  },
+  "comment-page": {
+    "enter-title": "Title",
+    "enter-comment": "Comment",
+    "send": "Send",
+    "abort": "Cancel",
+    "error-title": "Please enter a title.",
+    "error-comment": "Please enter a comment.",
+    "error-both-fields": "Please fill in all fields.",
+    "delimiter": "Please choose a format!",
+    "comma": "Microsoft Excel",
+    "semicolon": "Standard CSV",
+    "export": "Export"
+  },
+  "comment-list-page": {
+    "search": "Search",
+    "cancel": "Cancel"
   }
 }
diff --git a/src/assets/i18n/home/de.json b/src/assets/i18n/home/de.json
index 8919680494729e3ecb2043798351dbc36f69162a..9638bf1b60bd44a6c957e04ca235b6c809cf8b28 100644
--- a/src/assets/i18n/home/de.json
+++ b/src/assets/i18n/home/de.json
@@ -7,36 +7,39 @@
 		"logged-out": "Ausloggen erfolgreich.",
 		"back": "Zurück",
 		"my-sessions": "Meine Sessions",
-		"visited-sessions": "Besuchte Sessions"
+		"visited-sessions": "Besuchte Sessions",
+    "default": "ARSnova",
+    "dark": "Nacht"
 	},
 	"login-page": {
 		"creator": "Dozent/in",
 		"participant": "Student/in",
 		"password-reset": "Passwort vergessen?",
+		"not-registered": "Noch keinen Account?",
 		"register": "Registrieren",
 		"welcome": "Willkommen bei"
 	},
 	"home-page": {
 		"join-demo-session": "Demo-Session betreten",
-		"session-id": "Session-Id",
-		"no-room-found": "Es wurde keine Session mit dieser ID gefunden.",
-		"please-enter": "Bitte geben Sie eine Session-ID ein.",
-		"exactly-8": "Eine Session-ID hat genau 8 Ziffern.",
+		"session-id": "Session-ID",
+		"no-room-found": "Es wurde keine Session mit dieser ID gefunden",
+		"please-enter": "Bitte geben Sie eine Session-ID ein",
+		"exactly-8": "Eine Session-ID hat genau 8 Ziffern",
 		"create-session": "Session erstellen",
-		"no-empty-name": "Bitte geben Sie einen Namen ein.",
+		"no-empty-name": "Bitte geben Sie einen Namen ein",
 		"created-1": "Session '",
-		"created-2": "' erfolgreich erstellt.",
-		"only-numbers": "Eine Session-Id besteht aus Nummern."
+		"created-2": "' erfolgreich erstellt",
+		"only-numbers": "Eine Session-ID besteht aus Ziffern"
 	},
 	"login": {
-		"email": "E-Mail",
-		"email-invalid": "E-Mail Adresse ist ungültig",
-		"email-required": "E-Mail Adresse ist erforderlich",
+		"email": "E-mail",
+		"email-invalid": "E-mail Adresse ist ungültig",
+		"email-required": "E-mail Adresse ist erforderlich",
 		"guest-login": "Anmelden als Gast",
-		"input-incorrect": "Bitte prüfen Sie Ihre Eingaben.",
-		"login-successful": "Login erfolgreich.",
+		"input-incorrect": "Bitte prüfen Sie Ihre Eingaben",
+		"login-successful": "Login erfolgreich",
 		"login": "Anmelden",
-		"login-data-incorrect": "Benutzername oder Passwort nicht korrekt.",
+		"login-data-incorrect": "Benutzername oder Passwort nicht korrekt",
 		"password": "Passwort",
 		"password-required": "Passwort ist erforderlich",
 		"activate": "Aktivieren",
@@ -45,26 +48,26 @@
 		"activation-key-incorrect": "Aktivierungsschlüssel falsch"
 	},
 	"password-reset": {
-		"email": "E-Mail",
-		"email-invalid": "E-Mail Adresse ist nicht gültig.",
-		"email-required": "E-Mail Adresse ist erforderlich.",
-		"input-incorrect": "Bitte prüfen Sie Ihre Eingabe.",
+		"email": "E-mail",
+		"email-invalid": "E-mail Adresse ist ungültig.",
+		"email-required": "E-mail Adresse ist erforderlich.",
+		"input-incorrect": "Bitte prüfen Sie Ihre Eingaben",
 		"reset-password": "Passwort zurücksetzen",
-		"reset-successful": "Passwort wurde zurückgesetzt. Bitte prüfen Sie Ihre E-Mails"
+		"reset-successful": "Passwort wurde zurückgesetzt. Bitte prüfen Sie Ihre E-mails"
 	},
 	"register": {
-		"email": "E-Mail",
-		"email-verify": "E-Mail bestätigen",
-		"email-invalid": "E-Mail Adresse ist nicht gültig",
-		"email-required": "E-Mail Adresse ist erforderlich",
-		"email-unmatch": "E-Mail Adressen stimmen nicht überein",
+		"email": "E-mail",
+		"email-verify": "E-mail bestätigen",
+		"email-invalid": "E-mail Adresse ist ungültig",
+		"email-required": "E-mail Adresse ist erforderlich",
+		"email-unmatch": "E-mail Adressen stimmen nicht überein",
 		"password": "Passwort",
 		"password-required": "Passwort ist erforderlich",
 		"password-unmatch": "Passwörter stimmen nicht überein",
 		"password-verify": "Passwort bestätigen",
 		"register": "Registrieren",
-		"register-successful": "Erfolgreich registriert. Bitte prüfen Sie Ihre E-Mails",
-		"register-unsuccessful": "Bitte prüfen Sie Ihre Eingaben."
+		"register-successful": "Erfolgreich registriert. Bitte prüfen Sie Ihre E-mails",
+		"register-unsuccessful": "Bitte prüfen Sie Ihre Eingaben"
 	},
 	"session": {
 		"session-name": "Name der Session",
@@ -75,7 +78,7 @@
   "footer": {
     "dsgvo": "DSGVO",
     "imprint": "Impressum",
-    "will-open": " wird in einem neuen Fenster geöffnet..",
+    "will-open": " wird in einem neuen Fenster geöffnet...",
     "open": "Öffnen"
   }
 }
diff --git a/src/assets/i18n/home/en.json b/src/assets/i18n/home/en.json
index dcb2f0c79cef3d82800d07f8fd4479b2e36942d0..490d70df728be33625961ac47bf500751a9087e2 100644
--- a/src/assets/i18n/home/en.json
+++ b/src/assets/i18n/home/en.json
@@ -4,78 +4,81 @@
 		"german": "German",
 		"logout": "Logout",
 		"guest": "Guest",
-		"logged-out": "Logout successful.",
+		"logged-out": "Logout successful",
 		"back": "Back",
 		"my-sessions": "My Sessions",
-		"visited-sessions": "Visited Sessions"
+		"visited-sessions": "Visited Sessions",
+    "default": "ARSnova",
+    "dark": "Night"
 	},
 	"login-page": {
 		"creator": "Lecturer",
 		"participant": "Student",
 		"password-reset": "Forgot your password?",
+		"not-registered": "Don't have an account yet?",
 		"register": "Register",
 		"welcome": "Welcome to"
 	},
 	"home-page": {
 		"join-demo-session": "Join demo-session",
-		"session-id": "Session-Id",
-		"no-room-found": "No session was found with this id.",
-		"please-enter": "Please enter a session-id.",
-		"exactly-8": "A session-id has exactly 8 digits.",
+		"session-id": "Session-ID",
+		"no-room-found": "No session was found with this ID",
+		"please-enter": "Please enter a session-ID",
+		"exactly-8": "A session-ID has exactly 8 digits",
 		"create-session": "Create session",
 		"no-empty-name": "Please enter a name.",
 		"created-1": "Session '",
-		"created-2": "' successfully created.",
-		"only-numbers": "A session-id only contains numbers."
+		"created-2": "' successfully created",
+		"only-numbers": "A session-ID only contains digits"
 	},
 	"login": {
-		"email": "E-Mail",
-		"email-invalid": "E-Mail is invalid",
-		"email-required": "E-Mail is required",
+		"email": "E-mail",
+		"email-invalid": "E-mail is invalid",
+		"email-required": "E-mail required",
 		"guest-login": "Guest login",
-		"input-incorrect": "Please check your data.",
-		"login-successful": "Login successful.",
+		"input-incorrect": "Please check your data",
+		"login-successful": "Login successful",
 		"login": "Login",
-		"login-data-incorrect": "Username or password incorrect.",
+		"login-data-incorrect": "Username or password incorrect",
 		"password": "Password",
-		"password-required": "Password is required",
+		"password-required": "Password required",
 		"activate": "Activate",
 		"activation-key": "Activation key",
 		"activation-key-required": "Activation key required",
-		"activation-key-incorrect": "Activation key is wrong"
+		"activation-key-incorrect": "Activation key is incorrect"
 	},
 	"password-reset": {
-		"email": "E-Mail",
-		"email-invalid": "E-Mail is not valid",
-		"email-required": "E-Mail is required",
-		"input-incorrect": "Please check your data.",
+		"email": "E-mail",
+		"email-invalid": "E-mail is invalid",
+		"email-required": "E-mail required",
+		"input-incorrect": "Please check your data",
 		"reset-password": "Reset password",
-		"reset-successful": "Password was reset. Please check your mail."
+		"reset-successful": "Password was reset. Please check your mail"
 	},
 	"register": {
-		"email": "E-Mail",
-		"email-verify": "Verify E-Mail",
-		"email-invalid": "E-Mail is not valid",
-		"email-required": "E-Mail is required",
-		"email-unmatch": "E-Mails do not match",
+		"email": "E-mail",
+		"email-verify": "Verify E-mail",
+		"email-invalid": "E-mail is invalid",
+		"email-required": "E-mail required",
+		"email-unmatch": "E-mails do not match",
 		"password": "Password",
-		"password-required": "Password is required",
+		"password-required": "Password required",
 		"password-unmatch": "Passwords do not match",
 		"password-verify": "Verify password",
 		"register": "Register",
-		"register-successful": "Successfully registered. Please check your mail.",
-		"register-unsuccessful": "Please check your data."
+		"register-successful": "Successfully registered. Please check your mail",
+		"register-unsuccessful": "Please check your data"
 	},
 	"session": {
 		"session-name": "Session name",
 		"description": "Description",
-		"max-ls": "Max. letters / signs:",
+		"max-ls": "Max. characters:",
 		"create-session": "Create session"
 	},
   "footer": {
     "dsgvo": "GDPR",
     "imprint": "Imprint",
-    "will-open": " will be opened in a new tab..",
+    "will-open": " will be opened in a new tab...",
     "open": "Open"
   }
 }
diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json
index da12eb490bd66baddf309cb46c5639a94285c16c..db81bfab034356a7a44cbe481aecbfdec928bb16 100644
--- a/src/assets/i18n/participant/de.json
+++ b/src/assets/i18n/participant/de.json
@@ -15,15 +15,23 @@
     "description": "Beschreibung"
   },
   "comment-page": {
-    "enter-title": "Geben Sie einen Titel ein",
-    "back": "Zurück",
-    "send": "Senden"
+    "enter-title": "Titel",
+    "enter-comment": "Kommentar",
+    "send": "Senden",
+    "abort": "Abbrechen",
+    "error-comment": "Bitte geben Sie einen Kommentartext ein.",
+    "error-title": "Bitte geben Sie einen Titel ein.",
+    "error-both-fields": "Bitte füllen Sie alle Felder aus."
+  },
+  "comment-list-page": {
+    "search": "Suchen",
+    "cancel": "Abbrechen"
   },
   "answer": {
     "submit": "Absenden",
     "abstain": "Enthalten",
-    "sent": "Antwort gesendet.",
-    "abstention-sent": "Enthaltung gesendet.",
+    "sent": "Antwort gesendet",
+    "abstention-sent": "Enthaltung gesendet",
     "your-answer": "Ihre Antwort",
     "at-least-one": "Bitte wählen sie mindestens eine Antwort.",
     "please-one": "Bitte wählen sie eine Antwort.",
diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json
index fd8c912e9f950fa353804be70fc41ed0d95b03c5..33772d28f99604bf7925427865ba5a8cdb4a8702 100644
--- a/src/assets/i18n/participant/en.json
+++ b/src/assets/i18n/participant/en.json
@@ -1,8 +1,8 @@
 {
   "home-page": {
-    "no-room-found": "No session was found with this id.",
-    "please-enter": "Please enter a session-id.",
-    "exactly-8": "A session-id has exactly 8 digits."
+    "no-room-found": "No session was found with this ID.",
+    "please-enter": "Please enter a session-ID.",
+    "exactly-8": "A session-ID has exactly 8 digits."
   },
   "room-page": {
     "comments": "Comments",
@@ -15,15 +15,23 @@
     "description": "Description"
   },
   "comment-page": {
-    "enter-title": "Enter a title",
-    "back": "Back",
-    "send": "Send"
+    "enter-title": "Title",
+    "enter-comment": "Comment",
+    "send": "Send",
+    "abort": "Cancel",
+    "error-title": "Please enter a title.",
+    "error-comment": "Please enter a comment-text.",
+    "error-both-fields": "Please fill in all fields."
+  },
+  "comment-list-page": {
+    "search": "Search",
+    "cancel": "Cancel"
   },
   "answer": {
     "submit": "Submit",
     "abstain": "Abstain",
-    "sent": "Answer sent.",
-    "abstention-sent": "Abstention sent.",
+    "sent": "Answer sent",
+    "abstention-sent": "Abstention sent",
     "your-answer": "Your answer",
     "at-least-one": "Please select at least one answer.",
     "please-one": "Please select an answer.",
diff --git a/src/styles.scss b/src/styles.scss
index 7186b2044d95fd612daac9f466ab94aa6c52e436..9d8295a06c48b3922ec958e59e8adce73ab08a6a 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -1,4 +1,5 @@
-@import 'theme/_variables.scss';
+@import 'theme/default-Theme/_variables.scss';
+@import "theme/dark-Theme/dark-theme";
 // Plus imports for other components in your app.
 
 // Include the common styles for Angular Material. We include this here so that you only
@@ -11,4 +12,10 @@
 // that you are using.
 @include angular-material-theme($arsnova-theme);
 
-@import 'theme/_theme.scss';
+
+.dark {
+  @include angular-material-theme($dark-theme);
+}
+
+
+@import 'theme/default-Theme/theme';
diff --git a/src/theme/_theme.scss b/src/theme/_theme.scss
deleted file mode 100644
index a13ef7ac2dd270b6882f904fe2be6102b6f6ad46..0000000000000000000000000000000000000000
--- a/src/theme/_theme.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-@import '~@angular/material/theming';
-
-html, body {
-  font-family: 'Roboto', 'Helvetica Neue', sans-serif;
-  margin: 0;
-  padding: 0;
-  width: 100%;
-  height: 100%;
-}
-
-@import '_util.scss';
-@import '_form.scss';
-
-.progress-theme {
-  $progress-primary: mat-palette($mat-light-green, 300);
-  $progress-accent: mat-palette($mat-amber, 300);
-  $progress-warn:  mat-palette($mat-deep-orange, 300);
-
-  $progress-theme: mat-light-theme($progress-primary, $progress-accent, $progress-warn);
-
-  @include angular-material-theme($progress-theme);
-}
diff --git a/src/theme/arsnova-theme.const.ts b/src/theme/arsnova-theme.const.ts
new file mode 100644
index 0000000000000000000000000000000000000000..91ae0b442be2a92a93b2d6e64badcc28573556b0
--- /dev/null
+++ b/src/theme/arsnova-theme.const.ts
@@ -0,0 +1,7 @@
+import { dark } from './dark-Theme/darkTheme.const';
+import { defaultTheme } from './default-Theme/defaultTheme.const';
+
+export const themes = {
+  arsnovaTheme: defaultTheme,
+  dark: dark
+};
diff --git a/src/theme/dark-Theme/_dark-theme.scss b/src/theme/dark-Theme/_dark-theme.scss
new file mode 100644
index 0000000000000000000000000000000000000000..052a6d3e6a35cf9fafc1211cdfeb8f18748f0545
--- /dev/null
+++ b/src/theme/dark-Theme/_dark-theme.scss
@@ -0,0 +1,39 @@
+@import '../../../node_modules/@angular/material/theming';
+
+html, body {
+  font-family: 'Roboto', 'Helvetica Neue', sans-serif;
+  margin: 0;
+  padding: 0;
+  width: 100%;
+  height: 100%;
+}
+
+.fill-remaining-space {
+  /* This fills the remaining space, by using flexbox.
+     Every toolbar row uses a flexbox row layout. */
+  flex: 1 1 auto;
+}
+
+mat-form-field.input-block {
+  display: block;
+}
+
+.mat-fab .mat-button-wrapper {
+  padding: 0!important;
+}
+
+.mat-dialog-container {
+  background-color: white;
+}
+
+.mat-tab-header {
+  border-bottom-style: none!important;
+}
+
+
+$dark-primary: mat-palette($mat-blue-gray, 800);
+$dark-accent: mat-palette($mat-orange, 200);
+$dark-warn: mat-palette($mat-red, A200);
+
+$dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn);
+
diff --git a/src/theme/dark-Theme/darkTheme.const.ts b/src/theme/dark-Theme/darkTheme.const.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e1264499221262b81123d7d857d5da5eefa41aad
--- /dev/null
+++ b/src/theme/dark-Theme/darkTheme.const.ts
@@ -0,0 +1,24 @@
+export const dark = {
+
+  '--primary' : '#37474F',
+  '--light': '#455a64',
+
+  '--accent': '#FFE0B2',
+
+  '--background': '#616161',
+  '--background-2': '#757575',
+  '--card': '#bdbdbd',
+
+  '--green': '#AED581',
+  '--red': '#FF8A65',
+  '--yellow': '#FFD54F',
+  '--blue': '#1E88E5',
+  '--grey': '#E0E0E0',
+  '--grey-light': '#9E9E9E',
+
+  '--text-1': '#37474f',
+  '--text-2': '#004d40',
+  '--text-3': '#78909c',
+  '--dialog': '#78909c',
+  '--highlighted' : '#005F63'
+};
diff --git a/src/theme/_form.scss b/src/theme/default-Theme/_form.scss
similarity index 84%
rename from src/theme/_form.scss
rename to src/theme/default-Theme/_form.scss
index 25c4c8d605fcc88327bdcd7bfb355f71f8ee189c..bd6b5901d8dd1af6a3dcdfa956da26735fe16945 100644
--- a/src/theme/_form.scss
+++ b/src/theme/default-Theme/_form.scss
@@ -7,7 +7,7 @@ mat-form-field.input-block {
 }
 
 .mat-dialog-container {
-  background-color: #e0f2f1;
+  background-color: var(--dialog);
 }
 
 .mat-tab-header {
diff --git a/src/theme/default-Theme/_theme.scss b/src/theme/default-Theme/_theme.scss
new file mode 100644
index 0000000000000000000000000000000000000000..58ebcc5b6910cda421e4a5a8d0927beebad1b64b
--- /dev/null
+++ b/src/theme/default-Theme/_theme.scss
@@ -0,0 +1,13 @@
+@import './../../../node_modules/@angular/material/theming';
+
+html, body {
+  font-family: 'Roboto', 'Helvetica Neue', sans-serif;
+  margin: 0;
+  padding: 0;
+  width: 100%;
+  height: 100%;
+}
+
+@import 'util';
+@import 'form';
+
diff --git a/src/theme/_util.scss b/src/theme/default-Theme/_util.scss
similarity index 100%
rename from src/theme/_util.scss
rename to src/theme/default-Theme/_util.scss
diff --git a/src/theme/_variables.scss b/src/theme/default-Theme/_variables.scss
similarity index 91%
rename from src/theme/_variables.scss
rename to src/theme/default-Theme/_variables.scss
index a4a274efc2e5a2aafd32c402519f349708e76619..81c04ab7cabcc8da8e4943ebbe24fcba8ae5185d 100644
--- a/src/theme/_variables.scss
+++ b/src/theme/default-Theme/_variables.scss
@@ -1,4 +1,4 @@
-@import '~@angular/material/theming';
+@import './../../../node_modules/@angular/material/theming';
 // Define the palettes for your theme using the Material Design palettes available in palette.scss
 // (imported above). For each palette, you can optionally specify a default, lighter, and darker
 // hue. Available color palettes: https://www.google.com/design/spec/style/color.html
@@ -10,3 +10,4 @@ $arsnova-warn: mat-palette($mat-red, A100);
 
 // Create the theme object (a Sass map containing all of the palettes).
 $arsnova-theme: mat-light-theme($arsnova-primary, $arsnova-accent, $arsnova-warn);
+
diff --git a/src/theme/default-Theme/defaultTheme.const.ts b/src/theme/default-Theme/defaultTheme.const.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b12428a946c1da534f4526d6af96b590c37a8d74
--- /dev/null
+++ b/src/theme/default-Theme/defaultTheme.const.ts
@@ -0,0 +1,24 @@
+export const defaultTheme = {
+
+  '--primary' : '#4DB6AC',
+  '--light': '#80cbc4',
+
+  '--accent': '#FFE0B2',
+
+  '--background': '#B2DFDB',
+  '--background-2': '#BBDEFB',
+  '--card': '#fff8e1',
+
+  '--green': '#AED581',
+  '--red': '#FF8A65',
+  '--yellow': '#FFD54F',
+  '--blue': '#1E88E5',
+  '--grey': '#BDBDBD',
+  '--grey-light': '#EEEEEE',
+
+  '--text-1': '#37474f', // could be used for all texts   !!!!!!!!!!1
+  '--text-2': '#004d40', // could be used for all texts   !!!!!!11111
+  '--text-3': '#37474f', // could be used for all texts   !!!!!!!!!1
+  '--dialog': '#B2DFDB',
+  '--highlighted' : '#FFE082'
+};
diff --git a/src/theme/theme.directive.ts b/src/theme/theme.directive.ts
new file mode 100644
index 0000000000000000000000000000000000000000..41a493da22e7284bc882e9fc6285ac0c9b217db4
--- /dev/null
+++ b/src/theme/theme.directive.ts
@@ -0,0 +1,46 @@
+import { Directive, ElementRef, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';
+import { DOCUMENT } from '@angular/common';
+import { themes } from './arsnova-theme.const';
+import { ThemeService } from './theme.service';
+import { Subscription } from 'rxjs';
+
+@Directive({
+  selector: '[appTheme]'
+})
+
+export class ThemeDirective implements OnInit, OnDestroy {
+
+  private themeName = 'arsnovaTheme';
+  private themServiceSubscription: Subscription;
+
+  constructor(private elementRef: ElementRef,
+              private renderer: Renderer2,
+              @Inject(DOCUMENT) private document: any,
+              private themService: ThemeService) {
+  }
+
+  ngOnInit() {
+    this.updateTheme(this.themeName);
+    this.themService.getActiveTheme()
+      .subscribe(themeName => {
+        this.themeName = themeName;
+        this.updateTheme(this.themeName);
+      });
+  }
+
+  updateTheme(themeName: string) {
+    const them = themes[ themeName ];
+    for (const key in them) {
+      if (them.hasOwnProperty(key)) {
+        this.renderer.setProperty(this.elementRef.nativeElement, key, them[key]);
+        this.document.body.style.setProperty(key, them[key]);
+      }
+    }
+  }
+
+  ngOnDestroy() {
+    if (this.themServiceSubscription) {
+      this.themServiceSubscription.unsubscribe();
+    }
+  }
+}
diff --git a/src/theme/theme.module.ts b/src/theme/theme.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..af6d3e09bbdfe23c709e90d26264f87d749fb2a1
--- /dev/null
+++ b/src/theme/theme.module.ts
@@ -0,0 +1,14 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { ThemeDirective } from './theme.directive';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule
+  ],
+  declarations: [ThemeDirective],
+  exports:      [ThemeDirective],
+})
+export class ThemeModule { }
diff --git a/src/theme/theme.service.ts b/src/theme/theme.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9c56dfb379aacc5f0df11e7ea62560038d9838e3
--- /dev/null
+++ b/src/theme/theme.service.ts
@@ -0,0 +1,20 @@
+import { Injectable } from '@angular/core';
+import { BehaviorSubject } from 'rxjs';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class ThemeService {
+  themeName = localStorage.getItem('classNameOfTheme');
+  private activeThem = new BehaviorSubject(this.themeName);
+
+  constructor() { }
+
+  public getActiveTheme() {
+    return this.activeThem.asObservable();
+  }
+
+  public setActiveThem(name) {
+    this.activeThem.next(name);
+  }
+}