diff --git a/.gitignore b/.gitignore
index 3c28ab78b..55bfc1868 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,6 @@ code/dependencies.txt
*.iml
TEST*.xml
+
+# screenshots
+code/cell-screenshots
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c8d99166b..e24238eb9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@ The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/e
### Fixed
+- *de.itemis.mps.editor.diagram*: Some issues related to ELK styles and custom IDs were fixed.
+
+### Changed
+
- *com.mbeddr.mpsutil.projectview.runtime*: Fixed several NPEs. See: [#903,](https://github.com/JetBrains/MPS-extensions/issues/903) [#904]((https://github.com/JetBrains/MPS-extensions/issues/904) , [#901](https://github.com/JetBrains/MPS-extensions/issues/901)
## July 2024
diff --git a/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps b/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
index 58faadeaf..ae50944b4 100644
--- a/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
+++ b/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
@@ -20736,6 +20736,11 @@
+
+
+
+
+
@@ -20819,6 +20824,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -20905,6 +20921,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -21109,6 +21140,11 @@
+
+
+
+
+
@@ -21199,104 +21235,101 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
@@ -22157,6 +22190,12 @@
+
+
+
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
index d21128ce9..c40568dba 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
@@ -16,6 +16,7 @@
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
1144260c-e9a5-49a2-9add-39a1a1a7077e(de.itemis.mps.editor.diagram.runtime)
f7ad14aa-a3e2-4301-8822-d919845c8bcf(de.itemis.mps.editor.diagram.shapes)
+ fa13cc63-c476-4d46-9c96-d53670abe7bc(de.itemis.mps.editor.diagram)
@@ -63,6 +64,7 @@
+
@@ -71,10 +73,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/editor.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/editor.mps
index 125ecda57..31864b0aa 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/editor.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/editor.mps
@@ -21,8 +21,12 @@
+
+
+
+
@@ -57,6 +61,7 @@
+
@@ -82,6 +87,11 @@
+
+
+
+
+
@@ -136,6 +146,10 @@
+
+
+
+
@@ -275,6 +289,7 @@
+
@@ -1235,6 +1250,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1638,6 +1666,13 @@
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
index 34e34b296..86f8d95c0 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
@@ -1,7 +1,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
index f8c38e7d1..361b0dc3d 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
@@ -2332,34 +2332,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -4551,34 +4523,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -5061,34 +5005,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -6991,26 +6907,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -7293,34 +7189,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
index da760890d..89562460c 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
@@ -17,6 +17,7 @@
1144260c-e9a5-49a2-9add-39a1a1a7077e(de.itemis.mps.editor.diagram.runtime)
f7ad14aa-a3e2-4301-8822-d919845c8bcf(de.itemis.mps.editor.diagram.shapes)
fa13cc63-c476-4d46-9c96-d53670abe7bc(de.itemis.mps.editor.diagram)
+ aff569ad-098d-414a-aa23-96963959392c(test.de.itemis.mps.editor.diagram.lang)
@@ -95,6 +96,7 @@
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
index ac651a23e..9f47aacbc 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
@@ -5107,34 +5107,69 @@
-
+
+
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6894,7 +6929,47 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7441,7 +7516,7 @@
-
+
@@ -8054,7 +8129,37 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8142,7 +8247,7 @@
-
+
@@ -16775,6 +16880,13 @@
+
+
+
+
+
+
+
@@ -16795,6 +16907,12 @@
+
+
+
+
+
+
@@ -16862,6 +16980,13 @@
+
+
+
+
+
+
+
@@ -16882,6 +17007,12 @@
+
+
+
+
+
+
@@ -16949,6 +17080,13 @@
+
+
+
+
+
+
+
@@ -16991,6 +17129,12 @@
+
+
+
+
+
+
@@ -17112,6 +17256,13 @@
+
+
+
+
+
+
+
@@ -17154,6 +17305,12 @@
+
+
+
+
+
+
@@ -23862,38 +24019,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -24870,45 +24995,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
index 4844b0f3b..0273dd060 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
@@ -6157,37 +6157,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -6636,25 +6605,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -7171,37 +7121,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -7383,37 +7302,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -9859,37 +9747,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/de.itemis.mps.editor.diagram.migration.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/de.itemis.mps.editor.diagram.migration.mps
index 05eeb62b9..b147449bb 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/de.itemis.mps.editor.diagram.migration.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/de.itemis.mps.editor.diagram.migration.mps
@@ -614,7 +614,7 @@
-
+
@@ -643,7 +643,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
index c4b376394..0e85e418f 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
@@ -487,6 +487,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1104,6 +1123,9 @@
+
+
+
@@ -10751,6 +10773,12 @@
+
+
+
+
+
+
@@ -10763,6 +10791,12 @@
+
+
+
+
+
+
@@ -10775,6 +10809,12 @@
+
+
+
+
+
+
@@ -10787,6 +10827,12 @@
+
+
+
+
+
+
@@ -13760,32 +13806,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -14765,32 +14785,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
index f25569eab..1975cbe49 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
@@ -124,6 +124,12 @@
+
+
+
+
+
+
@@ -4104,11 +4110,6 @@
-
-
-
-
-
@@ -4327,11 +4328,6 @@
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/typesystem.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/typesystem.mps
index 6d27bf91e..97913b408 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/typesystem.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/typesystem.mps
@@ -1355,5 +1355,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/constraints.mps b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/constraints.mps
index a165f7425..5516d3048 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/constraints.mps
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/constraints.mps
@@ -2,9 +2,90 @@
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/editor.mps b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/editor.mps
index 31250ce60..7cc166192 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/editor.mps
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/editor.mps
@@ -4,17 +4,25 @@
+
-
+
+
+
+
+
+
+
+
@@ -31,6 +39,9 @@
+
+
+
@@ -41,7 +52,12 @@
+
+
+
+
+
@@ -53,13 +69,19 @@
+
+
+
+
+
+
@@ -72,36 +94,87 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -109,13 +182,61 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,8 +246,16 @@
+
+
+
+
+
+
+
+
@@ -141,36 +270,241 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -182,11 +516,17 @@
+
+
+
+
+
+
@@ -194,18 +534,21 @@
+
+
+
-
+
-
-
+
+
@@ -349,12 +692,12 @@
+
+
+
-
-
-
@@ -594,20 +937,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -666,15 +997,38 @@
-
-
-
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -732,12 +1086,12 @@
+
+
+
-
-
-
@@ -770,6 +1124,7 @@
+
@@ -798,6 +1153,9 @@
+
+
+
@@ -882,11 +1240,29 @@
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -901,60 +1277,4039 @@
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
index 6a4af1b57..8c4fb6d26 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
@@ -7,6 +7,7 @@
+
@@ -42,6 +43,9 @@
+
+
+
@@ -68,6 +72,11 @@
+
+
+
+
+
@@ -75,6 +84,9 @@
+
+
+
@@ -103,9 +115,6 @@
-
-
-
@@ -128,9 +137,6 @@
-
-
-
@@ -199,6 +205,9 @@
+
+
+
@@ -230,6 +239,7 @@
+
@@ -239,5 +249,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
index 129d5a132..1d2675a53 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
@@ -17,6 +17,8 @@
8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
18bc6592-03a6-4e29-a83a-7ff23bde13ba(jetbrains.mps.lang.editor)
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
+ fa13cc63-c476-4d46-9c96-d53670abe7bc(de.itemis.mps.editor.diagram)
+ 1144260c-e9a5-49a2-9add-39a1a1a7077e(de.itemis.mps.editor.diagram.runtime)
@@ -56,7 +58,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/models/de.itemis.mps.editor.diagram.demo.elk.sandbox.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/models/de.itemis.mps.editor.diagram.demo.elk.sandbox.mps
index 765972887..d6e6d9022 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/models/de.itemis.mps.editor.diagram.demo.elk.sandbox.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/models/de.itemis.mps.editor.diagram.demo.elk.sandbox.mps
@@ -45,6 +45,7 @@
+
@@ -61,6 +62,7 @@
+
@@ -106,7 +108,6 @@
-
@@ -185,6 +186,7 @@
+
@@ -226,6 +228,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -365,7 +378,6 @@
-
@@ -399,120 +411,120 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -522,27 +534,18 @@
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
@@ -550,20 +553,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -571,12 +574,12 @@
-
-
+
+
-
-
+
+
@@ -584,12 +587,12 @@
-
-
+
+
-
-
+
+
@@ -597,12 +600,12 @@
-
-
+
+
-
-
+
+
@@ -618,22 +621,40 @@
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -681,8 +702,8 @@
-
-
+
+
@@ -691,8 +712,8 @@
-
-
+
+
@@ -701,8 +722,8 @@
-
-
+
+
@@ -711,8 +732,8 @@
-
-
+
+
@@ -721,8 +742,8 @@
-
-
+
+
@@ -731,8 +752,8 @@
-
-
+
+
@@ -741,8 +762,8 @@
-
-
+
+
@@ -751,8 +772,8 @@
-
-
+
+
@@ -762,7 +783,7 @@
-
+
@@ -771,8 +792,8 @@
-
-
+
+
@@ -781,8 +802,8 @@
-
-
+
+
@@ -975,8 +996,8 @@
-
-
+
+
@@ -985,8 +1006,8 @@
-
-
+
+
@@ -995,8 +1016,8 @@
-
-
+
+
@@ -1005,8 +1026,8 @@
-
-
+
+
@@ -1015,8 +1036,8 @@
-
-
+
+
@@ -1025,8 +1046,8 @@
-
-
+
+
@@ -1035,8 +1056,8 @@
-
-
+
+
@@ -1045,8 +1066,8 @@
-
-
+
+
@@ -1055,8 +1076,8 @@
-
-
+
+
@@ -1065,8 +1086,8 @@
-
-
+
+
@@ -1075,8 +1096,8 @@
-
-
+
+
@@ -1085,8 +1106,8 @@
-
-
+
+
@@ -1155,15 +1176,14 @@
-
+
-
-
+
@@ -1268,7 +1288,6 @@
-
@@ -1282,8 +1301,8 @@
-
-
+
+
@@ -1292,8 +1311,8 @@
-
-
+
+
@@ -1302,8 +1321,8 @@
-
-
+
+
@@ -1312,8 +1331,8 @@
-
-
+
+
@@ -1322,8 +1341,8 @@
-
-
+
+
@@ -1332,8 +1351,8 @@
-
-
+
+
@@ -1342,8 +1361,8 @@
-
-
+
+
@@ -1352,8 +1371,8 @@
-
-
+
+
@@ -1362,8 +1381,8 @@
-
-
+
+
@@ -1372,8 +1391,8 @@
-
-
+
+
@@ -1382,8 +1401,8 @@
-
-
+
+
@@ -1392,8 +1411,8 @@
-
-
+
+
@@ -1402,8 +1421,8 @@
-
-
+
+
@@ -1413,12 +1432,12 @@
-
-
+
+
-
-
+
+
@@ -1426,12 +1445,8 @@
-
-
-
-
-
-
+
+
@@ -1439,8 +1454,8 @@
-
-
+
+
@@ -1448,8 +1463,12 @@
-
-
+
+
+
+
+
+
@@ -1457,12 +1476,12 @@
-
-
+
+
-
-
+
+
@@ -1470,12 +1489,8 @@
-
-
-
-
-
-
+
+
@@ -1483,8 +1498,8 @@
-
-
+
+
@@ -1492,8 +1507,12 @@
-
-
+
+
+
+
+
+
@@ -1501,8 +1520,8 @@
-
-
+
+
@@ -1510,8 +1529,8 @@
-
-
+
+
@@ -1519,8 +1538,8 @@
-
-
+
+
@@ -1528,8 +1547,8 @@
-
-
+
+
@@ -1575,8 +1594,8 @@
-
-
+
+
@@ -1585,8 +1604,8 @@
-
-
+
+
@@ -1595,8 +1614,8 @@
-
-
+
+
@@ -1605,7 +1624,7 @@
-
+
@@ -1615,8 +1634,8 @@
-
-
+
+
@@ -1626,7 +1645,7 @@
-
+
@@ -1636,7 +1655,7 @@
-
+
@@ -1646,7 +1665,7 @@
-
+
@@ -1655,8 +1674,8 @@
-
-
+
+
@@ -1665,8 +1684,8 @@
-
-
+
+
@@ -2701,9 +2720,9 @@
-
+
-
+
@@ -2711,9 +2730,9 @@
-
+
-
+
@@ -2721,69 +2740,69 @@
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -2791,29 +2810,29 @@
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -2830,11 +2849,11 @@
-
+
-
+
@@ -2842,36 +2861,36 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -2879,12 +2898,12 @@
-
-
+
+
-
-
+
+
@@ -2892,32 +2911,32 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -2925,12 +2944,12 @@
-
-
+
+
-
-
+
+
@@ -2938,12 +2957,12 @@
-
-
+
+
-
-
+
+
@@ -2951,74 +2970,65 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -3027,11 +3037,11 @@
-
+
-
+
@@ -3040,19 +3050,19 @@
-
+
-
+
-
-
+
+
-
-
+
+
@@ -3060,12 +3070,12 @@
-
-
+
+
-
-
+
+
@@ -3073,24 +3083,16 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
@@ -3098,12 +3100,12 @@
-
-
+
+
-
-
+
+
@@ -3288,8 +3290,8 @@
-
-
+
+
@@ -3298,8 +3300,8 @@
-
-
+
+
@@ -3308,8 +3310,8 @@
-
-
+
+
@@ -3318,8 +3320,8 @@
-
-
+
+
@@ -3328,8 +3330,8 @@
-
-
+
+
@@ -3338,8 +3340,8 @@
-
-
+
+
@@ -3348,8 +3350,8 @@
-
-
+
+
@@ -3358,8 +3360,8 @@
-
-
+
+
@@ -3368,8 +3370,8 @@
-
-
+
+
@@ -3378,8 +3380,8 @@
-
-
+
+
@@ -3388,8 +3390,8 @@
-
-
+
+
@@ -3398,8 +3400,8 @@
-
-
+
+
@@ -3513,7 +3515,6 @@
-
@@ -3761,8 +3762,8 @@
-
-
+
+
@@ -3771,8 +3772,8 @@
-
-
+
+
@@ -3781,8 +3782,8 @@
-
-
+
+
@@ -3791,7 +3792,7 @@
-
+
@@ -3801,8 +3802,8 @@
-
-
+
+
@@ -3811,8 +3812,8 @@
-
-
+
+
@@ -3851,8 +3852,8 @@
-
-
+
+
@@ -3861,7 +3862,7 @@
-
+
@@ -4127,6 +4128,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4379,6 +4408,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4506,8 +4581,8 @@
-
-
+
+
@@ -4516,8 +4591,8 @@
-
-
+
+
@@ -4526,8 +4601,8 @@
-
-
+
+
@@ -4536,8 +4611,8 @@
-
-
+
+
@@ -4546,8 +4621,8 @@
-
-
+
+
@@ -4556,8 +4631,8 @@
-
-
+
+
@@ -4566,8 +4641,8 @@
-
-
+
+
@@ -4576,8 +4651,8 @@
-
-
+
+
@@ -4586,8 +4661,8 @@
-
-
+
+
@@ -4596,8 +4671,8 @@
-
-
+
+
@@ -4606,8 +4681,8 @@
-
-
+
+
@@ -7314,9 +7389,9 @@
-
+
-
+
@@ -7324,9 +7399,9 @@
-
+
-
+
@@ -7334,69 +7409,69 @@
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -7404,29 +7479,29 @@
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -7442,12 +7517,12 @@
-
-
+
+
-
-
+
+
@@ -7456,35 +7531,35 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -7492,12 +7567,12 @@
-
-
+
+
-
-
+
+
@@ -7505,32 +7580,32 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -7538,12 +7613,12 @@
-
-
+
+
-
-
+
+
@@ -7551,12 +7626,12 @@
-
-
+
+
-
-
+
+
@@ -7564,12 +7639,12 @@
-
-
+
+
-
-
+
+
@@ -7577,12 +7652,12 @@
-
-
+
+
-
-
+
+
@@ -7590,27 +7665,27 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -7631,7 +7706,7 @@
-
+
@@ -7640,11 +7715,11 @@
-
+
-
+
@@ -7653,19 +7728,19 @@
-
+
-
+
-
-
+
+
-
-
+
+
@@ -7673,12 +7748,12 @@
-
-
+
+
-
-
+
+
@@ -7686,16 +7761,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -7703,12 +7778,12 @@
-
-
+
+
-
-
+
+
@@ -7941,8 +8016,8 @@
-
-
+
+
@@ -7951,8 +8026,8 @@
-
-
+
+
@@ -7961,8 +8036,8 @@
-
-
+
+
@@ -7971,8 +8046,8 @@
-
-
+
+
@@ -7981,8 +8056,8 @@
-
-
+
+
@@ -7991,8 +8066,8 @@
-
-
+
+
@@ -8001,8 +8076,8 @@
-
-
+
+
@@ -8011,8 +8086,8 @@
-
-
+
+
@@ -8021,8 +8096,8 @@
-
-
+
+
@@ -8031,8 +8106,8 @@
-
-
+
+
@@ -8041,8 +8116,8 @@
-
-
+
+
@@ -8051,8 +8126,8 @@
-
-
+
+
@@ -8188,7 +8263,6 @@
-
@@ -8245,9 +8319,9 @@
-
+
-
+
@@ -8255,9 +8329,9 @@
-
+
-
+
@@ -8265,9 +8339,9 @@
-
+
-
+
@@ -8275,7 +8349,7 @@
-
+
@@ -8283,29 +8357,11 @@
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
@@ -8320,11 +8376,11 @@
-
+
-
+
@@ -8587,6 +8643,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8631,7 +8733,6 @@
-
@@ -8672,90 +8773,90 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -8763,12 +8864,8 @@
-
-
-
-
-
-
+
+
@@ -8776,8 +8873,8 @@
-
-
+
+
@@ -8785,8 +8882,8 @@
-
-
+
+
@@ -8794,8 +8891,8 @@
-
-
+
+
@@ -8803,8 +8900,8 @@
-
-
+
+
@@ -8812,12 +8909,8 @@
-
-
-
-
-
-
+
+
@@ -8825,8 +8918,8 @@
-
-
+
+
@@ -8834,18 +8927,18 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -8860,7 +8953,6 @@
-
@@ -8893,8 +8985,8 @@
-
-
+
+
@@ -8903,8 +8995,8 @@
-
-
+
+
@@ -8913,8 +9005,8 @@
-
-
+
+
@@ -8923,11 +9015,11 @@
-
+
-
+
@@ -8941,6 +9033,7 @@
+
@@ -9076,29 +9169,29 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -9106,77 +9199,78 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
+
@@ -9190,6 +9284,1116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.demoentities.sandbox/models/de/itemis/mps/editor/diagram/demoentities/sandbox.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.demoentities.sandbox/models/de/itemis/mps/editor/diagram/demoentities/sandbox.mps
index eac010a0d..df56330cf 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.demoentities.sandbox/models/de/itemis/mps/editor/diagram/demoentities/sandbox.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.demoentities.sandbox/models/de/itemis/mps/editor/diagram/demoentities/sandbox.mps
@@ -539,11 +539,11 @@
-
+
-
+
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
index 366280223..dec01d63a 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
@@ -33146,12 +33146,14 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -89035,6 +89037,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -89120,29 +89181,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -118773,6 +118816,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125296,12 +125360,6 @@
-
-
-
-
-
-
@@ -125329,6 +125387,12 @@
+
+
+
+
+
+
@@ -130156,6 +130220,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -130250,6 +130360,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -136032,16 +136179,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -136206,23 +136343,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -140437,11 +140557,6 @@
-
-
-
-
-
@@ -140658,23 +140773,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -141128,27 +141226,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/model.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/model.mps
index 2747707fc..a1226507b 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/model.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/model.mps
@@ -5700,6 +5700,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5743,6 +5795,9 @@
+
+
+
@@ -5867,6 +5922,9 @@
+
+
+
@@ -23431,6 +23489,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
index ff02a6719..abc7af9d6 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
@@ -80,6 +80,7 @@
+
@@ -2420,6 +2421,7 @@
+
@@ -3843,9 +3845,14 @@
+
+
+
+
+
-
+
@@ -4115,7 +4122,9 @@
-
+
+
+
@@ -4143,9 +4152,14 @@
+
+
+
+
+
-
+
diff --git a/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps b/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
index 0ff6b3efd..9a929ff5f 100644
--- a/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
+++ b/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
@@ -1,6 +1,7 @@
+
@@ -15,6 +16,13 @@
+
+
+
+
+
+
+
@@ -35,13 +43,42 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -49,14 +86,18 @@
+
+
+
+
@@ -81,6 +122,10 @@
+
+
+
+
@@ -94,6 +139,7 @@
+
@@ -134,6 +180,8 @@
+
+
@@ -143,6 +191,9 @@
+
+
+
@@ -163,6 +214,9 @@
+
+
+
@@ -184,10 +238,14 @@
+
+
+
+
@@ -211,7 +269,6 @@
-
@@ -221,6 +278,7 @@
+
@@ -238,6 +296,7 @@
+
@@ -250,6 +309,7 @@
+
@@ -257,6 +317,12 @@
+
+
+
+
+
+
@@ -275,20 +341,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -312,24 +399,198 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -339,9 +600,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -351,25 +650,37 @@
+
+
+
+
-
+
+
+
+
+
+
+
+
+
@@ -394,6 +705,7 @@
+
@@ -410,6 +722,10 @@
+
+
+
+
@@ -437,15 +753,23 @@
+
+
+
+
+
+
+
+
@@ -978,10 +1302,10 @@
-
-
-
-
+
+
+
+
@@ -989,9 +1313,9 @@
-
-
-
+
+
+
@@ -2126,8 +2450,8 @@
-
-
+
+
@@ -2170,8 +2494,8 @@
-
-
+
+
@@ -2211,12 +2535,201 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2331,5706 +2844,5146 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+