summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authori08005 <i08005@4478ddc8-7591-0410-85af-75e9d0d8dff3>2011-02-15 20:40:19 +0000
committeryvesf <yvesf-git@xapek.org>2011-05-11 23:10:10 +0200
commit25fe33409f24006ddaecdeb07c2a685f4d516945 (patch)
tree4b696d7fe79ae5e7b4b56dfc0444862e93a29c35
parentb46373146c35c892a6e8ca802d96095e67f6128e (diff)
downloadstudienarbeit-2011-25fe33409f24006ddaecdeb07c2a685f4d516945.tar.gz
studienarbeit-2011-25fe33409f24006ddaecdeb07c2a685f4d516945.zip
Vorabversion Studienarbeit 2/2011 KSM Eclipse-RCP
-rw-r--r--.project17
-rw-r--r--.texlipse13
-rw-r--r--document.bib169
-rw-r--r--document.pdfbin0 -> 1041816 bytes
-rw-r--r--document.tex801
-rw-r--r--files/example-1.xml42
-rw-r--r--files/ksm-1.xsd238
-rw-r--r--files/ksm-example.xml109
-rw-r--r--files/umlstuff.zargobin0 -> 6300 bytes
-rw-r--r--images/KSMHistorie.pngbin0 -> 55341 bytes
-rw-r--r--images/class-diagram-xmlschema.PNGbin0 -> 29370 bytes
-rw-r--r--images/class-diagram-xmlschema.ucls60
-rw-r--r--images/dhbwlogo.pngbin0 -> 4124 bytes
-rw-r--r--images/eclipse-checkstyle.pngbin0 -> 140293 bytes
-rw-r--r--images/eclipse-commonnavigator.jpgbin0 -> 33242 bytes
-rw-r--r--images/eclipse-connection-fanrouter.pngbin0 -> 5128 bytes
-rw-r--r--images/eclipse-connection-manhattan.pngbin0 -> 4154 bytes
-rw-r--r--images/eclipse-extensions.jpgbin0 -> 78415 bytes
-rw-r--r--images/eclipse-gef-mvc.pngbin0 -> 31164 bytes
-rw-r--r--images/eclipse-gef-node-connections.jpgbin0 -> 9563 bytes
-rw-r--r--images/eclipse-gef-schema.pngbin0 -> 63462 bytes
-rw-r--r--images/eclipse-gef-schema2.pngbin0 -> 64646 bytes
-rw-r--r--images/eclipse-gef-uebersicht.pngbin0 -> 19173 bytes
-rw-r--r--images/eclipse-gesamtschema.pngbin0 -> 64598 bytes
-rw-r--r--images/eclipse-gesamtschema.svg443
-rw-r--r--images/eclipse-outline.pngbin0 -> 16397 bytes
-rw-r--r--images/eclipse-plugin-extensions.pngbin0 -> 75403 bytes
-rw-r--r--images/eclipse-plugins.pngbin0 -> 71500 bytes
-rw-r--r--images/eclipse-property-declaration-extensionpoint.jpgbin0 -> 32580 bytes
-rw-r--r--images/eclipse-property-usage-extensionpoint.jpgbin0 -> 64590 bytes
-rw-r--r--images/eclipse-simulator.jpgbin0 -> 64429 bytes
-rw-r--r--images/eclipse-target.jpgbin0 -> 108875 bytes
-rw-r--r--images/eclipse-workbench-high-level.pngbin0 -> 5599 bytes
-rw-r--r--images/eclipse-workbenchscreen.pngbin0 -> 94549 bytes
-rw-r--r--images/eclipse-workbenchscreen.screen209
-rw-r--r--images/ext-property-descriptors.PNGbin0 -> 31617 bytes
-rw-r--r--images/ext-property-descriptors.ucls73
-rw-r--r--images/icons/ksm-connection-new.pngbin0 -> 7452 bytes
-rw-r--r--images/icons/ksm-modell.pngbin0 -> 7926 bytes
-rw-r--r--images/icons/ksm-node-delete.pngbin0 -> 4567 bytes
-rw-r--r--images/icons/ksm-node-new.pngbin0 -> 9523 bytes
-rw-r--r--images/icons/ksm-node-property-add.pngbin0 -> 4889 bytes
-rw-r--r--images/icons/ksm-node-property-delete.pngbin0 -> 4461 bytes
-rw-r--r--images/ksm-gui-prototype.ep167
-rw-r--r--images/ksm-gui-prototype.pngbin0 -> 25301 bytes
-rw-r--r--images/ksm-outline-databinding.pngbin0 -> 49093 bytes
-rw-r--r--images/ksm-outline-databinding.screen51
-rw-r--r--images/ksm-outline.pngbin0 -> 4998 bytes
-rw-r--r--images/ksm-prototype-mainWindow.pngbin0 -> 84384 bytes
-rw-r--r--images/ksm-prototype-mainWindow.screen91
-rw-r--r--images/ksm-speicher-laden-wolf05.jpgbin0 -> 306733 bytes
-rw-r--r--images/ksm-swing-screenshot.pngbin0 -> 34867 bytes
-rw-r--r--images/node-edit-and-figure.PNGbin0 -> 65780 bytes
-rw-r--r--images/node-edit-and-figure.ucls96
-rw-r--r--images/osgi-schema-ibm-developerworks.pngbin0 -> 8624 bytes
-rw-r--r--images/piccolo2d-arch.ep82
-rw-r--r--images/piccolo2d-arch.pngbin0 -> 6163 bytes
-rw-r--r--images/projekthistorie.pngbin0 -> 142401 bytes
-rw-r--r--images/projekthistorie.svg1057
-rw-r--r--images/rcp-beispiel-maximiert.jpgbin0 -> 37809 bytes
-rw-r--r--images/rcp-beispiel-umordnung.jpgbin0 -> 54367 bytes
-rw-r--r--images/rcp-beispielmodell.jpgbin0 -> 66383 bytes
-rw-r--r--images/table-editor.jpgbin0 -> 46892 bytes
-rw-r--r--images/transformation.pngbin0 -> 133508 bytes
-rw-r--r--images/transformation.svg1027
-rw-r--r--images/uml-datamodel.pngbin0 -> 32329 bytes
-rw-r--r--images/uml-editor-outline.pngbin0 -> 27991 bytes
-rw-r--r--images/uml-gef.plantuml26
-rw-r--r--images/uml-gef.pngbin0 -> 43141 bytes
-rw-r--r--images/uml_editorpart.pngbin0 -> 17059 bytes
-rw-r--r--images/uml_editorport.zargobin0 -> 9633 bytes
-rw-r--r--images/xmlschema-arch.pngbin0 -> 8662 bytes
-rw-r--r--images/xmlschema-arch.svg421
-rw-r--r--images/zest-arch.ep115
-rw-r--r--images/zest-arch.pngbin0 -> 6908 bytes
-rw-r--r--images/zest-mvc.ep35
76 files changed, 5342 insertions, 0 deletions
diff --git a/.project b/.project
new file mode 100644
index 0000000..452dcbe
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>documentation-i08005-2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>net.sourceforge.texlipse.builder.TexlipseBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>net.sourceforge.texlipse.builder.TexlipseNature</nature>
+ </natures>
+</projectDescription>
diff --git a/.texlipse b/.texlipse
new file mode 100644
index 0000000..8ef5dfd
--- /dev/null
+++ b/.texlipse
@@ -0,0 +1,13 @@
+#TeXlipse project settings
+#Tue Feb 22 18:22:50 CET 2011
+builderNum=2
+outputDir=
+makeIndSty=
+bibrefDir=
+outputFormat=pdf
+tempDir=tmp
+mainTexFile=document.tex
+outputFile=document.pdf
+langSpell=de
+markDer=true
+srcDir=
diff --git a/document.bib b/document.bib
new file mode 100644
index 0000000..cde3809
--- /dev/null
+++ b/document.bib
@@ -0,0 +1,169 @@
+% !TEX TS-program = bibtex
+
+% Frühere Studienarbeiten
+@unpublished{wolf05,
+title="{Implementierung eines Kybernetischen System Modells}",
+author="Wolf, Friedhelm",
+year=2005,
+note="{Studienarbeit an der BA-Horb}",
+}
+
+@Unpublished{dreher11,
+title="{Refactoring und Redesign}",
+author="Dreher, Tobias",
+year=2011,
+note="{Studienarbeit an der DHBW Stuttgart Campus Horb}",
+}
+
+@Unpublished{kienzle11,
+title="{Plugin Entwicklung: Eclipse Plugin Entwicklung}",
+author="Kienzle, Felix",
+year=2011,
+note="{Seminararbeit Software-Engineering bei Prof. Dr. phil. van Hoof an der DHBW Stuttgart Campus Horb}",
+}
+
+@unpublished{riess03,
+title="{Kybernetisches Systemmodell KSM 4}",
+author="Riess, Christian",
+year=2003,
+note="{Studienarbeit an der BA-Horb}",
+}
+
+@Unpublished{fischer10,
+ author = "Fischer, Yves",
+ title = "{KSM - Eclipse RCP}",
+ year = 2010,
+ note="{Studienarbeit an der DHBW Stuttgart Campus Horb}",
+}
+
+%Eclipse/Java Books
+@book{gef1,
+title="{Create an Eclipse-based application using the Graphical Editing Framework}",
+author="Aniszczyk, Chris and Hudson, Randy}",
+year="2007",
+note="\url{http://www.ibm.com/developerworks/library/os-eclipse-gef11/}",
+publisher="{IBM developerWorks}",
+}
+
+@book{daumEclipse,
+title="{Java-Entwicklung mit Eclipse 3.1}",
+author="Daum, Berthold",
+year=2005,
+publisher="{dpunkt.verlag}"
+}
+
+@book{eclipse-osgi,
+title="{Understanding how Eclipse plug-ins work with OSGi}",
+author="{Scott Delap}",
+year=2006,
+note="\url{http://www.ibm.com/developerworks/library/os-ecl-osgi/index.html}",
+publisher="{IBM developerWorks}",
+}
+
+@book{swing2swt,
+title="{Migrate your Swing application to SWT}",
+author="{Yannick Saillet}",
+year=2004,
+note="\url{http://www.ibm.com/developerworks/java/tutorials/j-swing2swt/}",
+publisher="{IBM developerWorks}",
+}
+
+@book{eclipse-plugins,
+title="{Developing Eclipse plug-ins}",
+author="Gallardo, David",
+year=2002,
+note="\url{http://www.ibm.com/developerworks/opensource/library/os-ecplug/}",
+publisher="{IBM developerWorks}",
+}
+
+@book{eclipse-read,
+title="{Recommended Eclipse reading list}",
+author="{Chris Aniszczyk, EMC}",
+year=2006,
+note="\url{https://www.ibm.com/developerworks/library/os-ecl-read/}",
+publisher="{IBM developerWorks}",
+}
+
+@book{eclipse-codebuch,
+title="{Das Eclipse-Codebuch}",
+author="Daum, Berthold",
+year=2006,
+publisher="{dpunkt.verlag}",
+note="{aus Bibliothek DHBW/Horb}",
+}
+
+@book{eclipse:building:plugins,
+title="{eclipse - Building Commercial-Quality Plug-ins}",
+author="Gamma and Nackman and Wiegand",
+year=2006,
+publisher="{Addison-Wesley}",
+note="{aus Bibliothek DHBW/Horb}",
+}
+
+@book{book:eclipse-rcp,
+title="{Eclipse Rich Client Platform}",
+author="{Sippel, Jastram, Bendisposto}",
+year=2009,
+publisher="{entwickler.press}",
+note="{aus Bibliothek DHBW/Horb}",
+}
+
+@book{bartlett,
+title = "{OSGi in Practice}",
+author = "Bartlett, Neil",
+publisher = "Bartlett, Neil",
+year = 2010,
+note = "\url{http://njbartlett.name/osgibook.html}",
+}
+
+@book{gefslides,
+title = "{GEF in Depth}",
+author = "Hudson, Randy and Shah, Pratik",
+publisher = "IBM Rational Software",
+year = 2005,
+note = "\url{http://www.eclipsecon.org/2005/presentations/EclipseCon2005_23_GEF_Tutorial_Final.ppt}",
+}
+
+@book{gefredbook,
+title = "{Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework}",
+author = "Moore, William and Dean, David and Gerber, Anna and Wagenknecht, Gunnar and Vanderheyden, Philippe",
+publisher = "{An IBM Redbooks publication}",
+year = 2004,
+note = "\url{http://www.redbooks.ibm.com/abstracts/sg246302.html}"
+}
+
+@misc{vogelrcp,
+title = "{Eclipse RCP Tutorial}",
+author = "Vogel, Lars",
+year = 2011,
+note = "Version 5.7, \url{http://www.vogella.de/articles/EclipseRCP/article.html}"
+}
+
+@misc{eclipse:wiki,
+title = "{Eclipse Wiki}",
+note = "\url{http://wiki.eclipse.org/Main_Page}"
+}
+
+@misc{eclipse:scalabundle,
+title = "{Scala Bundle}",
+note = "\url{http://wiki.eclipse.org/Scala_Bundle}"
+}
+
+@misc{eclipse:scalarcp,
+title = "{Using Scala to Create Eclipse RCP Applications}",
+note = "\url{http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:using_scala_to_create_eclipse_rcp_applications}",
+}
+
+@book{jfaceaction,
+title = "{SWT/JFace In Action}",
+author = "Scarpino, Matthew and Holder, Stephen and Ng, Stanford and Mihalkovic, Laurent",
+publisher = "Manning",
+year = 2005,
+}
+
+@misc{cathedral,
+title = "{The Cathedral and the Bazaar}",
+author = "Raymond, Eric Steven",
+year = 2002,
+note = "\url{http://www.catb.org/~esr/writings/homesteading/cathedral-bazaar/index.html}",
+}
diff --git a/document.pdf b/document.pdf
new file mode 100644
index 0000000..b06595b
--- /dev/null
+++ b/document.pdf
Binary files differ
diff --git a/document.tex b/document.tex
new file mode 100644
index 0000000..3ed2fc3
--- /dev/null
+++ b/document.tex
@@ -0,0 +1,801 @@
+% !TEX TS-program = pdflatex -shell-escape
+% !TEX encoding = UTF-8 Unicode
+\documentclass[%draft,
+12pt,titlepage,abstracton]{scrreprt}
+\usepackage[T1]{fontenc}
+\usepackage{ucs}
+\usepackage[utf8x]{inputenc}
+\usepackage[ngerman]{babel}
+\usepackage{url,graphicx,xcolor}
+%\usepackage{float} % for [H]
+\usepackage[pdfstartview=FitH,colorlinks,linkcolor=black,citecolor=darkgray,urlcolor=darkgray,filecolor=darkgray]{hyperref}
+%\usepackage{draftwatermark} \SetWatermarkLightness{0}
+
+\bibliographystyle{unsrt}
+
+\usepackage{libertine} %Schriftart Linux-Libertine
+\usepackage{courier} % Schriftart für monospaced
+\usepackage[activate]{microtype} % Microtype für besseren Zeichensatz
+
+\usepackage{setspace}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{9pt}
+\onehalfspacing % BA Vorgabe ein-einhalb Zeilenabstand
+
+\usepackage{listings}
+\usepackage{pdfpages} % Zum einbinden externer PDF-Dateien
+
+\newcommand{\boppel}[1]{
+ \parbox{1cm}{
+ \setlength{\unitlength}{1cm}
+ \begin{picture}(1,1)(0,0)
+ \linethickness{2pt}
+ \put(0.5,0.5){\color{cyan}\circle*{1.5}}
+ \put(0.5,0.5){\makebox(0,0){\textcolor{white}{\textbf{#1}}}}
+ \end{picture}
+ }
+}
+
+\usepackage[toc,smallcaps]{glossaries}
+\renewcommand*{\glstextformat}[1]{\textit{#1}}
+\makeglossaries
+\makeindex
+
+\title{\infoTitle}
+\author{\infoAuthor}
+\date{\infoDate}
+
+
+\newcommand{\infoTitel}{KSM: Eclipse RCP}
+\newcommand{\infoTyp}{Studienarbeit 2}
+\newcommand{\infoKurs}{Studiengang Informationstechnik}
+\newcommand{\infoAutor}{Yves Fischer}
+\newcommand{\infoAbgabe}{20. Mai 2011} % Titelseite und Erklärung
+\newcommand{\infoBetreuerDH}{Dr. Jörg Wedeck}
+\newcommand{\infoKurskuerzel}{\textsc{TIT}2008/NS}
+
+\newglossaryentry{Viewport}{name={Viewport}, description={Begriff aus
+ dem Grafikbereich der den Auschnitt eines Bildes, welcher
+ dargestellt wird, bezeichnet.}}
+
+\newglossaryentry{Controls}{name={Controls},description={hier Teil einer GUI Anwendung,
+oft auch Widget genannt.}}
+
+\newglossaryentry{JDT}{name={JDT},description={\emph{J}ava \emph{D}evelopment \emph{T}ools}}
+
+\newglossaryentry{Classpath}{name={Classpath},description={Der Classpath wird vom Java Classloader benützt um referenzierte Klassen zu finden. Durch spezielle Classloader lässt sich Code innerhalb einer Virtual-Machine separieren.}}
+
+\newglossaryentry{Classloader}{name={Classloader},description={siehe \glstext{Classpath}}}
+
+\newglossaryentry{Memory Leak}{name={Memory Leak},description={Ein Memory Leak ensteht wenn ein Programm (auch indirekt über Bibliotheken) vom Betriebssystem Speicher anfordert (\texttt{*alloc}) und die Referenz auf den zugewiesenen Speicher löscht, daher den Speicher ,,vergisst'' und nicht wieder freigeben kann.}}
+
+\newglossaryentry{KSM/Swing}{name={KSM/Swing},description={Die KSM
+Implementierung auf Basis der Java-Swing GUI-Bibliothek.}}
+
+\newglossaryentry{KSM/RCP}{name={KSM/RCP},description={Die KSM
+Implementierung als eine Eclipse~RCP Anwendung.}}
+
+
+\begin{document}
+\begin{titlepage}\enlargethispage*{4\baselineskip}
+\pagenumbering{roman}
+\unitlength1mm
+\begin{picture}(0,0)
+ \put(45,0){\includegraphics[width=5cm]{images/dhbwlogo.png}}
+\end{picture}
+
+\vspace{2cm}
+
+\begin{centering}
+\huge{\infoTitel}\\
+\vspace{1.5cm}
+\LARGE{\textsc{\infoTyp}}\\
+\vspace{3cm}
+\Large{\infoKurs}\\
+\normalsize{%
+an der Dualen Hochschule Baden-Württemberg Stuttgart Campus Horb\\
+von}\\
+\Large{\infoAutor} \\
+\vspace{2cm}
+\normalsize
+Abgabedatum:\\ \infoAbgabe\\
+\end{centering}
+
+\vspace{5.0cm}
+\begin{tabbing}
+MMMMMMMMMMMMMMMMMMMMMMMM \= \kill\\
+\textbf{Kurs} \> \infoKurskuerzel\\
+\textbf{Betreuer der Dualen Hochschule} \> \infoBetreuerDH\\
+\end{tabbing}
+\begin{flushleft}
+\end{flushleft}
+
+\end{titlepage}
+
+{\huge Erklärung}
+
+\vspace{2cm}
+Ich habe die Studienarbeit selbständig verfasst und keine anderen als
+die angegebenen Quellen und Hilfsmittel benutzt.
+
+Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen
+Prüfungsbehörde vorgelegt und auch nicht veröffentlicht.
+
+\vspace{1cm}
+
+Rheinau, \infoAbgabe
+
+\vspace{1cm}
+
+\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
+
+\newpage
+\renewcommand{\abstractname}{Zusammenfassung}
+\begin{abstract}
+Im vorangegangen Semester wurde die Portierung der KSM Java/Swing Applikation
+auf Eclipse~RCP evaluiert.
+
+In dieser Arbeit sollen konkrete Vorgehensweisen erörtert und der Weg zu
+einer Eclipse~RCP basierten KSM Applikation geebnet werden.
+
+\section*{Motivation}
+Das GUI von KSM basiert momentan auf Swing bei Verwendung des
+NetBeans GUI-\-Designers. Der auf diesem Weg erzeugte Code ist nahezu
+unwartbar und auch durch die ständige Weiterentwicklung inkonsistent.
+
+Mithilfe von Eclipse~RCP können dank klarer Strukturen und
+Konventionen Verbesserungen im Bereich Wartbarkeit, Erweiterbarkeit
+und Usability erzielt werden.
+
+\section*{Problemstellung und Ziele}
+Während die vorhergehende Studienenarbeit \cite{fischer10} sich mit der
+Einarbeitung in Eclipse~RCP und der grundsätzlichen Möglichkeit der Realisierung
+von KSM darin beschäftigte, soll mit dieser Studienarbeit die konkrete Umsetzung
+begonnen werden.
+\end{abstract}
+
+\renewcommand{\abstractname}{Summary}
+\begin{abstract}
+The previous assignment evaluated the porting of the KSM Java / Swing
+Application to Eclipse-RCP.
+
+This follow-up discuss specific ways to an Eclipse~RCP based KSM application.
+
+\section*{Motivation} Currently KSM is based on a Java-Swing Graphical User
+Interface, developed with the NetBeans GUI-Designer. This GUI-related code is
+inconsistent and unmaintainable due to continuos development.
+
+Its possible to gain a better maintainability, expandability and usability by
+using Eclipse RCP through clear structures and conventions.
+
+\section*{Tasks and Objectives}
+While the foregoing Studienenarbeit elaborates
+basic Eclipse-RCP technics and presented a rough-prototype, its now time to
+begin with the implementation of specific points of a new KSM Application in
+Eclipse-RCP to supersede the Swing-based Application.
+
+The ongoing development will be in close cooperation with students working on
+bugfixing and extending the Swing-based KSM, to gain interoperability and quality.
+\end{abstract}
+
+\tableofcontents
+\newpage\pagenumbering{arabic}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Einleitung}
+Aufbauend auf den Ergebnissen der vorangegangen Studienarbeit gilt es zu
+beginnen, mithilfe von Eclipse~RCP ein KSM Werkzeug zu erstellen welches auf
+längere Sicht den die Java/Swing Version ablösen kann.
+
+Für ein KSM auf Basis von Eclipse~RCP sprechen viele Gründe von denen einige
+im folgenden kurz erläutert werden:
+
+\textbf{Erweiterbarkeit/Modularität\ } Die Entwicklung von KSM hat viele
+verschiedene Versionsstände hervorgebracht die oftmals nicht wieder vereint
+werden konnten. Wäre das Grundprojekt modularer aufgebaut gewesen hätten diese
+einfacher in ein großes ganzes integriert werden können.
+
+Zu diesem Zeitpunkt existieren zwei im Grunde gleiche KSM Entwicklungszweige:
+KSM und QKSM. Der Ideen und Bugfix Austausch zwischen den Entwicklern und
+Projektständen ist durch die strikte Trennung nahezu null.
+
+Wenn zukünftig weitere Anwendungen mit ähnlichen Anwendungsbereich in
+Eclipse~RCP entwickelt werden ist es möglich diese mit wenig Aufwand gebündelt
+auszuliefern.
+
+\textbf{Vereinfachung\ } Durch Verwendung von Softwarekomponten und Frameworks
+aus der Eclipse Platform kann auf aufwendige, fehleranfällige Eigenentwicklungen
+verzichtet werden.
+
+\textbf{Bessere GUI\ } Für Benutzer von Eclipse wird das Arbeiten mit
+Workspaces und Projekten in der Eclipse~Art bereits vertraut sein. Alle anderen
+werden mit einem intuitiven Standard- --- weniger individuell-kreativen ---
+Oberfläche konfrontiert.
+
+\textbf{Lizenzmanagement\ } KSM soll in naher Zukunft öffentlich verfügbar
+sein, QKSM nicht. Wäre QKSM ein Zusatzmodul (Bundle, Plugin) für KSM, dann
+würde lediglich eine zusätzliche Datei einem Open-Source KSM QKSM Fähigkeiten
+verleihen.
+
+\textbf{Deployment/Update\ } Eclipse verfügt über ausgereifte Mechanismen zur
+Softwareverteilung und Aktualisierung. Über eine Update-Site könnten Benutzer
+über das Internet Ihre KSM-Installation modular Ihren Bedürfnissen anpassen und
+aktualisieren.
+
+\textbf{Web Anwendungen\ } Mithilfe von RAP (Rich Ajax Platform) lassen sich
+RCP Anwendungen ins Web portieren.
+
+\vspace{1cm}
+
+Diese Studienarbeit wird die Vorteile der Nutzung der Eclipse Platform nur zum
+Bruchteil auskosten. Nicht zu vergessen ist, dass es auch Hindernisse gibt auf
+die im Kapitel \ref{chapter:rcpprogrammierung} ab Seite
+\pageref{chapter:rcpprogrammierung} eingegangen wird.
+
+Zu Beginn wird die Entwicklung eines Datenformat für die Computerdarstellung von
+Kybernetischen System-Modellen besprochen. Kapitel
+\ref{chapter:weiterentwicklung} beschreibt Veränderungen gegenüber dem Prototyp
+aus der vorhergehenden Arbeit.
+
+In Kapitel \ref{chapter:rcpprogrammierung} wird auf die Arbeit und das
+Erlernen des Umgangs mit Eclipse~RCP besprochen. Kapitel \ref{chapter:ausblick}
+wird die Ergebnisse dieser Arbeit kurz zusammenfassen und zur möglichen
+Weiterentwicklung Stellung nehmen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Datenformat und Datenmodell}
+In der Studienarbeit 1 wurde mit einem vereinfachten Datenmodell gearbeitet.
+
+Da zukünftig sowohl KSM/Swing alsu auch /RCP die gleichen Daten verarbeiten
+können sollten liegt es nahe, dass Format in dem die Daten persistent im
+Dateisystem abgelegt werden können zu vereinheitlichen.
+
+Im folgenden wird ausgeführt warum das aktuelle Datenformat in KSM/Swing nicht
+geeignet ist und wie ein neues entwickelt wurde.
+
+\par
+\begingroup
+\leftskip=1.5cm % ggf. verstellen
+\noindent In Anhang \ref{chapter:doku-datamodel} ist die vollständige Dokumentation des
+in neuen Dateformat zu finden dessen Entwicklung in diesem Kapitel beschrieben
+wird.
+\par
+\endgroup
+
+\section{Istzustand}
+In der Evaluation von RCP wurde ein einfaches Datenformat eingeführt, indem die
+Model-Objekte einfach mittels leicht annotiertem JAXB serialisiert wurden:
+{\small
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<diagram>
+ <connections>
+ <connection>
+ <source>1c862df6-80e5-445b-a41c-ed677973abfb</source>
+ <target>e36a0368-d8f6-40a2-bd29-375352045da8</target>
+ </connection>
+ </connections>
+ <nodes name="Node 01">
+ <id>1c862df6-80e5-445b-a41c-ed677973abfb</id>
+ <location>
+ <x>128</x>
+ <y>90</y>
+ </location>
+ <nodeProperties/>
+ </nodes>
+ <nodes name="Node 11">
+ <id>e36a0368-d8f6-40a2-bd29-375352045da8</id>
+ <location>
+ <x>531</x>
+ <y>104</y>
+ </location>
+ <nodeProperties/>
+ </nodes>
+</diagram>
+\end{verbatim}
+}
+
+In der aktuellen KSM/Swing Applikation wird ebenfalls ein auf XML-basierendes
+Datenformat verwendet.
+
+Abbildung \ref{fig:ksmswing-diagramm} zeigt ein einfaches KSM-Diagramm in
+KSM/Swing. Listing \ref{ksmswingdata} gibt stark gekürzt das bei der Speicherung
+erzeugte XML wieder.
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=\textwidth]{images/ksm-swing-screenshot.png}
+ \caption{KSM/Swing Applikation bei der Anzeige der Daten aus Listing
+ \ref{ksmswingdata}}
+ \label{fig:ksmswing-diagramm}
+\end{figure}
+
+\lstinputlisting[language=XML,basicstyle=\ttfamily\scriptsize,
+ caption={Datenformat aus KSM/Swing Applikation Stand
+ 22.02.2011}]{files/ksm-example.xml}\label{ksmswingdata}
+
+Für das KSM/Swing Datenform existiert ein XML-Schema in der Ausarbeitung der
+Studienarbeit von Friedhelm Wolf \cite{wolf05} in Anhang 4. Es wurde aber in den
+folgenden Studienarbeiten nicht mehr weiter gepflegt und ist daher vermutlich
+nicht mehr gültig.
+
+Darüberhinaus existierte keine saubere Dokumentation dieses Datenformates. Die
+Bedeutung der abgelegten Werte muss aus dem Quelltext von KSM/Swing
+interpretiert werden was nicht immer einfach ist.
+
+Weiterhin scheinen die Konventionen beim Entwurf dieses Formates (oder
+,,Schema'') eher beliebig gewesen zu sein.
+Dies fällt als erstes auf bei der Benennung der der Eigenschaftsnamen (Tags), wo
+\texttt{CamelCase} (,,Microsoft Stil''), \texttt{javaStilArt} und
+underline\_stil wild gemischt werden. Die Benamung verwendet teils Typ-Prefix
+(\texttt{sIconPath}), teils auch nicht.
+
+Die Ein- und Ausgabe erfolgt in KSM/Swing mithilfe der Java-Bibliothek
+\textit{com.machinedialog}. Von Seiten der Projektbetreuung wurde geäusert, dass
+es gewünscht ist diese alte Bibliothekt nicht mehr weiter zu verwenden.
+
+
+Die fehlende Dokumentation und der anscheinend unstrukturierte Entwurf sprachen
+ebenfalls gegen eine Weiterverwendung dieses Schemas.
+In Sicht zur Zukunft ist das Format ungeignet, weil es nicht erlaubt zusätzlich
+Eigenschaften rückwärtskompatibel abzubilden.
+
+Es ist nicht durch ein XML-Schema gestützt und es wurde im Laufe der Entwicklung
+mehrmals beliebig verändert. Es ist nicht dokumentiert und der Parser in
+KSM/Swing Programm ist in einem schlechten und mit der GUI verknüpften Zustand.
+
+
+\section{Entwicklung eines neuen Datenformat}
+Wie an diesen beiden Beispielen zu sehen ist, bietet das XML-Format aus der
+Studienarbeit~1 nicht den Darstellungsumfang des KSM/Swing Format. Letzteres ist
+jedoch ungeignet zur Nutzung in einer neuen KSM RCP-Applikation.
+
+Daher lag es nahe ein Format zu entwerfen welche sowohl von KSM/Swing mithilfe
+einer sauberen neuen Import/Export Infrastruktur als auch in der RCP-Anwendung
+genutzt werden kann. Es wurde hierbei ein Ansatz gewählt der sowohl Knoten,
+Gruppen von Knoten (auch bekannt als ,,Hirarchien'') als auch gerichtete
+Verbindungen zu einem anderen Knoten abbilden kann. Alle drei Objekte können
+durch Eigenschaften dynamisch, nicht schemagebunden mit Informationen
+angereichert werden.
+
+\par
+\begingroup
+\leftskip=1.5cm % ggf. verstellen
+\noindent Die Implementierung des neuen Datenformat in KSM/Swing wurde von
+Tobias Dreher vorgenommen. Siehe dazu seine Studienarbeit \cite{dreher11}.
+\par
+\endgroup
+
+
+Zu festen Standardisierung wurde ein XML-Schema erstellt woraus wiederum mittels
+des XML-Schema-Compiler (xjc) von JAXB Java-Klassen erzeugt werden die mit
+weiteren, handgeschrieben Klassen eine Bibliothek zur Abbildung von
+KSM-Diagrammen im Speicher und laden/speichern bietet (Abb.
+\ref{fig:class-diagram-xmlschema}). Diese kann sowohl von KSM/RCP als auch
+beliebigen Java-Anwendungen verwendet werden.
+
+\begin{figure}[ht!]
+ \centering
+\includegraphics[width=0.8\textwidth]{images/class-diagram-xmlschema.PNG}
+\caption{Klassendiagramm XML-Datenmodell Bibliothekt, Auschnitt KSM
+Model-Klasse}
+\label{fig:class-diagram-xmlschema}
+\end{figure}
+
+Die Datenmodell Bibliothek (Name
+\texttt{de.\-dhbw.\-horb.\-ksm.\-xmlschema}) ist als Eclipse-Project angelegt
+kann jedoch auch nur mit Ant entwickelt werden. Das Projektverzeichnis enthält
+weiterhin umfassende Unit-Tests, teils Beaviour Driven
+
+Listing \ref{listing:example} zeigt valide Beispieldaten zum im Anhang ab Seite
+\pageref{listing:schema} hinterlegten neuen XML-Schema..
+
+\lstinputlisting[language=XML,basicstyle=\ttfamily\scriptsize,
+ caption={KSM example-1.xml}
+ ]{files/example-1.xml}\label{listing:example}
+
+
+Weitere Dokumentation zum Format und der Bibliothek finden sich im Anhang ab
+Seite \pageref{chapter:doku-datamodel}.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Weiterentwicklung Programmfunktionalität und
+Modularisierung}\label{chapter:weiterentwicklung}
+
+Das KSM/RCP Projekt besteht aus folgenden Komponenten:
+\begin{description}
+ \item[\texttt{de.\-dhbw.\-horb.\-ksm.\-core}] Plugin
+ Project, Kernfunktionalität:
+ \begin{itemize}
+ \item RCP-Anwendung Einstiegspunkt
+ \item Editor auf Basis von GEF (Figures, EditParts)
+ \item Projekttypen, Dateiwizard, Outline und Navigator
+ \item KSM-Property Extension-Point
+ \end{itemize}
+ \item[\texttt{de.\-dhbw.\-horb.\-ksm.\-qksm}] Plugin Project, Enthält nur
+ eine Demo für den Property Extension-Point.
+ \item[\texttt{de.\-dhbw.\-horb.\-ksm.\-simulator}] Fragment Project von
+ \texttt{.core}, Enthält eine Demo der
+ live Verknüpfung des im Editor dargestellten Modells mit einem Chart auf Basis
+ von SWTChart.
+ \item[\texttt{de.\-dhbw.\-horb.\-ksm.\-tableeditor}] Fragment Project von
+ \texttt{.core}, Enthält einen Prototyp
+ zum Editieren von Knoteneigenschaften in Tabellenform.
+ \item[\texttt{ksm-model}]
+ Java-Project/Apache Ant, Datenmodell:
+ \begin{itemize}
+ \item XML-Schema des Datenformat.
+ \item Java Library auf Basis von JAXB.
+ \item Dokumentation des Datenformat.
+ \end{itemize}
+ \item[\texttt{de.\-dhbw.\-horb.\-ksm.\-model}] Plugin Project welches
+ \texttt{ksm-model} als OSGi-Bundle zur Verfügung stellt. Muss nach
+ Aktualisierung von \texttt{ksm-model} ebenfalls aktualisiert werden.
+\end{description}
+
+
+\section{Die RCP Applikation \texttt{ksm.\-core}}
+\subsection{Der Editor und das Datenmodell}
+
+\begin{figure}[mt]
+\centering
+\includegraphics[width=\textwidth]{images/node-edit-and-figure.PNG}
+\caption{Model, View und Controller des KSM (von Rechts nach Links)}
+\label{fig:node-edit-and-figure}
+\end{figure}
+
+
+% model source/target connections
+% commands
+%zooming redbook 4.2.4
+% übersicht der commits mit verbesserten commit-messages
+
+% fragment project versus bundle
+
+
+
+% Properties
+% http://www.eclipse.org/articles/Article-Properties-View/properties-view.html
+% vogella: extension points
+
+
+
+\section{Simulation}
+Ein Prototyp der Simulationsdarstellung zeigt wie sich Änderungen
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=0.8\textwidth]{images/eclipse-simulator.jpg}
+\caption{Simulator Prototyp}
+\label{fig:eclipse-simulator}
+\end{figure}
+
+Die Simulationskomponente lässt sich in Eclipse~RCP mithilfe einer zusätzlichen
+View implementieren.
+
+Diese View besitzt einen eigenen Zustand ist jedoch zum Start der Simulation mit dem
+dann aktiven Editor gekoppelt.
+
+\subsection{Dieser komische Graph}
+kann mit der library swtchart dargesellt werden
+
+\section{Table-Editor}
+Der Table-Editor ,,besteht aus sechs Reitermenüs. Diese besitzen folgende
+Funktionalitäten: [Editoren für] ,Edge Values' – Kanteneigenschaften [..]
+,Node Values' – Knoteneigenschaften'' (Studienarbeit Christian Riess \cite[S.
+24]{riess03}).
+
+Im Rahmen dieser Studienarbeit wurde ein Table-Editor prototypisch entworfen
+welcher Knoteneigenschaften manipulieren kann. Abbildung \ref{fig:table-editor}
+zeigt die dabei eingeführten Neuigkeiten.
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=0.8\textwidth]{images/table-editor.jpg}
+\caption{Prototyp eines Table-Editor}
+\label{fig:table-editor}
+\end{figure}
+
+Rot markiert ist die neue View des ,,Table-Editor''. Sie wird durch den Aufruf
+der Table-Editor Perspektive aktiviert (Button ebenfalls rot markiert).
+
+Bei der View handelt es sich \texttt{PageBookView}. Sie instanziert für jeden
+offenen Editor einen Table-Editor. Es wird jeweils der zu dem fokussierten
+Diagramm-Editor passende Table-Editor angezeigt. Die Implentierung folgt dabei
+dem Eclipse-Standard wie er auch in Outline verwendet wird.
+
+Änderungen am Diagramm übernimmt der Table-Editor einfacherweise indem er auf
+alle Node/NodeGroup Objekte listener registriert sondern er beobachtet den
+Command-Stack des Editors. Dies funktioniert nur solange wie keine weiteren
+Änderungen am Modell vorgenommen werden die kein Command im Diagramm-Editor
+Command-Stack erzeugen.
+
+Der Table-Editor nutzt im Prototyp noch keine Undo-/Redo-Funktionalität.
+
+Der Table-Editor Prototyp ist als seperates Eclipse-Projekt vom Typ
+,,Plugin-Fragment'' abgelegt. Das bedeutet, es hängt direkt vom KSM-Core Plugin
+als Host-Plugin ab und ist kein eigenständiges (OSGi-)Bundle. Daraus folgt auch,
+dass es nicht über ein \texttt{Activator} Klasse verfügt.
+
+\section{Property Editor}
+Damit ein Model für die Properties-View nötigen Informationen bereitstellt muss
+eine \texttt{Prop\-erty\-Source} bereitgestellt werden. Dies geschieht im
+einfachen Fall indem die Model-Klasse \texttt{IProp\-erty\-Source\-Provider} implementiert.
+
+Ist dies nicht der Fall fragt die Properties-View das \texttt{EditPart} über
+\texttt{getAdapter\-(IProp\-erty\-Source\-Provider.class)} nach einem Objekt das
+die Properties des Model beschreibt. Dieser Ansatz wurde gewählt, da die
+Klassen des Models nicht angepasst werden konnten. Dies ist in einer
+Designschwäche der Model-Bibliothek begründet. Es ist noch nicht möglich eigene,
+abgeleitete Klassen für das Model zu verwenden.
+
+Es wurden daher die Klassen \texttt{d.d.h.k.core.\-editor.\-model.\-property.*}
+als PropertySourceProvider für \texttt{Node} und \texttt{NodeGroup} eingeführt.
+Abbildung \ref{fig:ext-property-descriptors} zeigt als UML-Klassendiagramm die
+Klassen zur Verwaltung der Properties.
+
+\begin{figure}[mt]
+\centering
+\includegraphics[width=0.7\textwidth]{images/ext-property-descriptors.PNG}
+\caption{Klassen des Extension Point für Property Deskriptoren}
+\label{fig:ext-property-descriptors}
+\end{figure}
+
+Für jedes Model-Objekt meldet das entsprechende EditPart eine Instanz von
+\texttt{Model\-Property\-Source}. Das Attribut \texttt{type} ist dabei je nach
+Model eines von \texttt{ksm, nodegroup, node, connection}.
+Anhand dieses Typs wird in der Extension\-Registry nachgeschlagen ob für den
+Extension\-Point \texttt{de.\-dhbw.\-horb.\-ksm.\-core.\-model.\-property}
+Extensions registriert wurden.
+
+Extensions sehen so aus, dass eine von
+\texttt{Abstract\-Property\-Descriptor\-Advisor} abgeleitete Klasse (im
+Beispiel sind schon BaseNode(Group)PropertyAdvisor dargestellt die die
+Manipulation der grundlegenden Eigenschaften Farbe und Beschriftung erlauben)
+angegeben wird die Descriptoren für Eigenschaften des Model-Objekt erstellt.
+
+\begin{figure}[mt]
+\centering
+\includegraphics[width=0.7\textwidth]{images/eclipse-property-declaration-extensionpoint.jpg}
+\caption{Deklaration des Extension-Point für Property-Advisors}
+\label{fig:property-declaration-extensionpoint}
+\end{figure}
+
+\begin{figure}[mt]
+\centering
+\includegraphics[width=0.7\textwidth]{images/eclipse-property-usage-extensionpoint.jpg}
+\caption{Benutzung des Extension-Point für Property-Advisors}
+\label{fig:eclipse-property-usage-extensionpoint}
+\end{figure}
+
+Abbildung \ref{fig:property-declaration-extensionpoint} zeigt wie der Extension
+Point deklariert wurde. Das gezeigte GUI ist eine Maske für eine XML-Datei die
+im Prinzip ein XML-Schema für das XML ist mit dem der Extension-Point
+genutzt werden kann. In diesem Fall können auf den Extension-Point beliebig
+viele ,,advisor'' Elemente angelegt werden die auf eine von
+\texttt{Abstract\-Property\-Descriptor\-Advisor} abgeleitete Klasse zeigen und
+ein Attribut \texttt{type} haben (Abb.
+\ref{fig:eclipse-property-usage-extensionpoint}).
+
+
+\section{ksm-datamodel als OSGi Bundle}
+%%% warum primitiv gehalten
+%% wies in eclipse geht
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Eclipse~RCP Programmierung}\label{chapter:rcpprogrammierung}
+Dieses Kapitel soll zukünftigen Entwickler einige Hinweise zum schnellen Start
+geben. Dazu soll die in dieser Arbeit verwendete Arbeitsumgebung vorgestellt und
+dabei gewonnenen Erfahrungen bei der Einarbeitung und Nutzung mitgeteilt werden.
+
+\section{Hilfsmittel}
+Zu Beginn der Studienarbeit I verfügte ich über Basiskentnisse der Eclipse
+Java Development Tools (JDT). Das Thema Eclipse~RCP wurde im Studium nicht
+angesprochen und daher war meine primäre Aufgabe einen Einstieg in das Thema
+RCP-Entwicklung zu finden.
+
+Zum Kennenlernen von Eclipse ist der Besuch eines Eclipse Demo~Camp
+empfehlenswert. Dort werden neue, auf Eclipse aufbauende Technologien
+vorgestellt. Informationen darüber finden sich im Eclipse Wiki
+\cite{eclipse:wiki}. Weitere aktuelle Informationen aus dem Eclipse Umfeld
+finden sich in Blogs die im Eclipse Planet aggregiert werden
+(\url{http://planeteclipse.org/}).
+
+Weiterhin war auch einige der Literatur in Buchform, die im Literaturverzeichnis
+dieser Arbeit verlinkt ist, sehr hilfreich. Grundsätzlich findet man jedoch die
+meisten Informationen in RCP-Beispielapplikationen, formloser Dokumentation und
+im Eclipse-(Online-)Hilfesystem. Auch sollte man zur RCP-Entwicklung die Quellen
+von RCP installiert haben, sodass man bei jeder Gelegenheit nahtlos in den
+Quellcode von RCP wechseln kann. Die API-Dokumentation der RCP und auch GEF
+Klassen ist meist sehr hilfreich.
+
+Zum Einstieg ist das RCP Tutorial von Lars Vogel empfehlenswert \cite{vogelrcp}.
+Zu den Grundlagen von GEF sind die Folien eines EclipseCon Tutorials interessant
+\cite{gefslides}. Tiefergehend jedoch teils veraltete Informationen bietet
+das IBM Redbook zu diesem Thema \cite{gefredbook}.
+
+Einen allgemeinen Überblick und guten Enstieg in die Eclipse Plugin Entwicklung
+findet sich in der Seminararbeit im Kurs Software-Engineering 2011 von Felix
+Kienzle TIT2008NS \cite{kienzle11}.
+
+Da Eclipse~RCP kein abgeschlossenes Produkt ist sondern sich aus einzelnen
+Komponenten zusammensetzt findet man auch Informationen jenseits von RCP.
+Beispielsweise zu OSGi\cite{bartlett}, JFace\cite{jfaceaction} oder SWT. Eine
+Liste von Empfohlenen Büchern findet sich unter \cite{eclipse-read}.
+
+\section{Berücksichtigung von Eclipse~RCP in zukünftigen Vorlesungen}
+Im 4ten-Semester gab es eine Einführung in das Arbeiten mit Eclipse. Aus der
+Sicht dieser Studienarbeit lag der Focus dabei leider lediglich auf einer
+kurzen Einführung in die Arbeit mit den Java Development Tools (JDT).
+
+Um die Arbeit an KSM/RCP vorzubereiten könnte in dieser Vorlesung schon die
+Entwicklung von Eclipse-Plugins und RCP-Anwendungen besprochen werden.
+
+Dadurch wird der Zeitbedarf der Vorlesung steigen. Ein Möglichkeit diese Zeit zu
+gewinnen könnte in der Optimierung der Vorlesungen zu Programmiersprachen
+liegen.
+So gab es im Zuge der Vorlesungen C++, Java/Eclipse, .net/C\# Themenredundanzen.
+Möglicherweise wäre es sinnvoll, anhand Java - wegen dem vglw. einfachen Aufbau
+dieser Programmiersprache - in die Objektorientierte Programmierung einzuführen
+und ggf. darauf aufbauend C++ zu lehren.
+
+Die zusätzliche Vermittlung der .net-Umgebung mit der Sprache C\# hat in meinen
+Augen keinen Sinn gemacht, da hier keine neuen oder andersartigen Konzepte
+sondern lediglich leichte Syntaxveränderungen vermittelt wurden.
+
+Ergänzend hätte mich vielmehr eine Einführung in funktionale Programmierung
+interessiert, die könnte - bei anhaltender Eclipse~RCP-Ausrichtung - mit dem
+Einsatz Scala erfolgen \cite{eclipse:scalabundle}\cite{eclipse:scalarcp}.
+
+\section{Technische Organisation des Projekts}
+XXX
+hier zum opensource, git svn migration.
+
+kurz xmlschema-doc als asciidoc.
+
+einschätzung ksm als opensource
+
+vorteile github
+XXX
+
+\section{KSM als Open-Source Projekt}
+Bereits zu Beginn der ersten Studienarbeit wurde die Veröffentlichung des KSM
+Programm inklusive Quelltexte diskutiert. Zu diesem Zeitpunkt war man der
+Auffasung, dass KSM/Swing technisch nicht in einem veröffentlichungswüdigen
+Zustand ist und KSM/RCP existierte noch nicht als Prototyp.
+Die Veröffentlichung von KSM/Swing wird wahrscheinlich nicht mehr in dieser
+Studienarbeit geschehen.
+
+Unabhängig davon erscheint eine Veröffentlichung von KSM/RCP sinnvoll. Es darf
+dabei jedoch nicht als klassisches Open-Source Projekt gesehen werden weil es
+noch nicht produktiv verwendbar ist:
+\begin{quote}
+It's fairly clear that one cannot code from the ground up in bazaar style.
+One can test, debug and improve in bazaar style, but it would be very hard to
+originate a project in bazaar mode.\\
+\ldots Your nascent developer community needs to have something runnable and
+testable to play with.
+\flushright{\small Eric S. Raymond, ,,Necessary
+Preconditions for the Bazaar Style'' \cite{cathedral}}
+\end{quote}
+
+Die Veröffentlichung hat nicht die Absicht eine Entwicklergemeinde zu bilden,
+sondern eine ,,stabile'' Heimat für KSM zu gründen. Wie in Studienarbeit 1
+visualisiert wurde \cite[S. 2]{fischer10} war die bisherige Entwicklung von KSM
+eher chaotisch als zielstrebig. Dies lag vermutlich auch zum Teil daran, dass
+beginnende Studenten kein sauberes Projekt vorfanden sondern auf ,,ein SVN'' was
+\textit{irgendwo liegt} verwiesen wurden und dann gibts da noch so eine
+\textit{CD-ROM}. Eine Übersicht über die vorhergehenden
+Studienarbeiten-Ausarbeitungen gab es bis dahin ebenfalls nicht.
+
+Die Veröffentlichung - bzw. eine sauber strukturierte Ablage - ist ein Baustein
+im Prozess der Zustand ändert.
+
+In Hinblick auf eine Open-Source Entwicklung wird das private und sich als
+unzuverlässig herausgestellte Subversion-Repository gegen ein Git-Repository
+getauscht. Die Wahl für Git begründet sich durch die starke Präsenz besonders in
+Eclipse nahen Projekten und dadurch, dass bereits im Kurs Software-Engineering
+mit Git gearbeitet wurde. Es wird die ebenfalls im Studium bereits verwendete
+Platform \texttt{github.com} verwendet.
+
+Die Quellen des Eclipse basierten KSM/RCP werden unter dem Github
+Organization-Account \textit{dhbw-horb} veröffentlicht bzw. hinterlegt werden.
+Ebenso wird ein Verweis auf die KSM-Website hinterlegt. Zukünftige Entwickler
+erhalten Zugriff, indem sie Mitglied dieses Organization-Account werden.
+
+Zwar wird der Quellcode veröffentlicht. Von Open-Source im Sinne der allgemeinen
+Bedeutung ist allerdings nicht zu sprechen, da keine Open-Source Lizenzierung
+vorgenommen wird die fremden Personen die Beteiligung erleichtern würde.
+
+%XXX
+Da zur Drucklegung noch keine endgültige Entscheidung der Projektleitung
+gefallen ist, ist das KSM/RCP-Repository bis auf weiteres \textit{private}, d.h.
+es kann nur von Mitgliedern der \textit{dhbw-horb Organization} eingesehen werden.
+
+
+% ergänzungen zu sa-1
+%link zu
+%% java coding style
+%% mockito dokumentation
+%% avh vorlesung xmlschema
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Zusammenfassung und Ausblick}\label{chapter:ausblick}
+% zukpnftige aufgaben
+%% lizenzierung
+%% programmieren der fehleenden komponetenten
+%%% graph, table editor
+%% Automatische GUI-Tests
+%% Model mit EMF erstellen von KSM/Swing wegfällt
+
+%% graffiti statt GEF?
+
+%% trennung qksm/ksm/rcp sinnlos
+
+% model/xmlschema: fehlender factory support; einzelne listener vll. doch falsch
+
+% gef nach migration http://eclipse.org/graphiti/
+
+%danksagung
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\cleardoublepage
+\appendix
+\addcontentsline{toc}{chapter}{Anhang}
+\label{appendix}
+\setcounter{section}{0}
+
+
+\cleardoublepage
+\addtocounter{section}{1}
+\chapter*{Anhang \arabic{section}. \ Dokumentation Datenmodell}
+\addcontentsline{toc}{section}{Anhang \arabic{section}. \ Dokumentation Datenmodell}
+\label{chapter:doku-datamodel}
+\includepdf[pages=2-,
+pagecommand=,
+scale=0.8,
+offset=0 50,scale=1.12]{../ksmrcp/ksm-model/doc/KSM-Datamodel.pdf}
+
+\cleardoublepage
+\addtocounter{section}{1}
+\chapter*{Anhang \arabic{section}. \ Neues XML-Schema}
+\addcontentsline{toc}{section}{Anhang \arabic{section}. \ Neues XML-Schema}
+\label{appendix:schema}
+\lstinputlisting[language=XML,basicstyle=\ttfamily\scriptsize,
+ label=listing:schema
+ ]{files/ksm-1.xsd}
+
+
+\cleardoublepage
+\addtocounter{section}{1}
+\renewcommand{\listfigurename}{Anhang \arabic{section}. \ Abbildungsverzeichnis}
+\addcontentsline{toc}{section}{\listfigurename}
+\listoffigures
+
+%\cleardoublepage
+%\addtocounter{section}{1}
+%\renewcommand{\listtablename}{Anhang \arabic{section}. \ Tabellenverzeichnis}
+%\addcontentsline{toc}{section}{\listtablename}
+%\listoftables
+
+%\newpage
+%\twocolumn
+%\printglossary[toctitle={Glossar},title={Glossar}]
+%\onecolumn
+
+\cleardoublepage
+\addtocounter{section}{1}
+\renewcommand{\bibname}{Anhang \arabic{section}. \ Literatur}
+\addcontentsline{toc}{section}{\bibname}
+\nocite{*} %alles ausgaben
+\bibliography{document}
+\end{document} \ No newline at end of file
diff --git a/files/example-1.xml b/files/example-1.xml
new file mode 100644
index 0000000..e334856
--- /dev/null
+++ b/files/example-1.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<ksm xmlns="http://hb.dhbw-stuttgart.de/~ksm/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://hb.dhbw-stuttgart.de/~ksm/1.0 ksm-1.0.xsd"
+ version="1.0">
+ <nodegroup id="root">
+ <node id="56-7567-567567-657657-567">
+ <properties>
+ <string name="visual.caption">a node</string>
+ <string name="visual.color">#ffeecc</string>
+ <integer name="visual.pos_x">420</integer>
+ <integer name="visual.pos_y">420</integer>
+ </properties>
+ <connections />
+ </node>
+
+ <nodegroup id="0123123-123123-123123-123213">
+ <node id="56-7567-12345-657657-567">
+ <properties>
+ <string name="visual.color">#ffeecc</string>
+ <integer name="visual.pos_x">420</integer>
+ <integer name="visual.pos_y">420</integer>
+ </properties>
+ <connections>
+ <connection to="56-7567-567567-657657-567">
+ <properties>
+ <string name="visual.caption">A Connection</string>
+ <string name="visual.color">#ffeecc</string>
+ <integer name="data.weight">5</integer>
+ </properties>
+ </connection>
+ </connections>
+ </node>
+ <properties>
+ <string name="visual.caption">a Hierarchy</string>
+ <string name="visual.color">#ffeecc</string>
+ <integer name="visual.pos_x">420</integer>
+ <integer name="visual.pos_y">420</integer>
+ </properties>
+ </nodegroup>
+ <properties />
+ </nodegroup>
+</ksm>
diff --git a/files/ksm-1.xsd b/files/ksm-1.xsd
new file mode 100644
index 0000000..d0d872b
--- /dev/null
+++ b/files/ksm-1.xsd
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ba-horb.de/~ksm/xml/ksm-1"
+ xmlns:tns="http://www.ba-horb.de/~ksm/xml/ksm-1" elementFormDefault="qualified"
+ xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0">
+
+ <!-- Wurzelelement eines KSM Dokument -->
+ <element name="ksm">
+ <complexType>
+ <annotation>
+ <appinfo>
+ <jxb:class name="XKSM" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="nodegroup" type="tns:NODEGROUP_TYPE"
+ minOccurs="1" maxOccurs="1">
+ </element>
+ <element name="properties" type="tns:PROPERTIES_TYPE"
+ minOccurs="0" maxOccurs="1"></element>
+ </sequence>
+ <attribute name="version" type="string" use="required" />
+ </complexType>
+ </element>
+
+ <complexType name="PROPERTY_BASE_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyBase" />
+ </appinfo>
+ </annotation>
+ <simpleContent>
+ <extension base="anySimpleType">
+ <attribute name="name" use="required" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PROPERTY_STRING_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyString" />
+ </appinfo>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute name="name" use="required" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PROPERTY_BOOLEAN_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyBoolean" />
+ </appinfo>
+ </annotation>
+ <simpleContent>
+ <extension base="boolean">
+ <attribute name="name" use="required" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PROPERTY_DECIMAL_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyDecimal" />
+ </appinfo>
+ </annotation>
+ <simpleContent>
+ <extension base="decimal">
+ <attribute name="name" use="required" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PROPERTY_INTEGER_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyInteger" />
+ </appinfo>
+ </annotation>
+ <simpleContent>
+ <extension base="integer">
+ <attribute name="name" use="required" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PROPERTY_LIST_BASE_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyBaseList" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ </sequence>
+ <attribute name="name" use="required"></attribute>
+ </complexType>
+
+ <complexType name="PROPERTY_STRING_LIST_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyStringList" />
+ </appinfo>
+ </annotation>
+ <complexContent>
+ <extension base="tns:PROPERTY_LIST_BASE_TYPE">
+ <sequence>
+ <element name="value" type="string" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="PROPERTY_DECIMAL_LIST_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyDecimalList" />
+ </appinfo>
+ </annotation>
+ <complexContent>
+ <extension base="tns:PROPERTY_LIST_BASE_TYPE">
+ <sequence>
+ <element name="value" type="decimal" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="PROPERTY_INTEGER_LIST_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XPropertyIntegerList" />
+ </appinfo>
+ </annotation>
+ <complexContent>
+ <extension base="tns:PROPERTY_LIST_BASE_TYPE">
+ <sequence>
+ <element name="value" type="integer" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- EinelListe von Eigenschaften -->
+ <complexType name="PROPERTIES_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XProperties" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="string" type="tns:PROPERTY_STRING_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="decimal" type="tns:PROPERTY_DECIMAL_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="integer" type="tns:PROPERTY_INTEGER_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="boolean" type="tns:PROPERTY_BOOLEAN_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="stringList" type="tns:PROPERTY_STRING_LIST_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="decimalList" type="tns:PROPERTY_DECIMAL_LIST_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="integerList" type="tns:PROPERTY_INTEGER_LIST_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <!-- KSM Node (Knoten), hat Eigenschaften, hat Verbindungen zu anderen Knoten -->
+ <complexType name="NODE_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XNode" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="properties" type="tns:PROPERTIES_TYPE"
+ minOccurs="1" maxOccurs="1" />
+ <element name="connections" type="tns:CONNECTIONS_TYPE"
+ minOccurs="0" maxOccurs="1" />
+ </sequence>
+ <attribute name="id" type="tns:NODE_ID_TYPE" use="required" />
+ </complexType>
+
+ <!-- Eine NodeGroup fasst mehrere Knoten zusammen, auch bekannt als Hirachien -->
+ <complexType name="NODEGROUP_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XNodeGroup" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="node" type="tns:NODE_TYPE" minOccurs="0"
+ maxOccurs="unbounded" />
+ <element name="nodegroup" type="tns:NODEGROUP_TYPE"
+ minOccurs="0" maxOccurs="unbounded"></element>
+ <element name="properties" type="tns:PROPERTIES_TYPE"
+ minOccurs="1" maxOccurs="1" />
+ </sequence>
+ <attribute name="id" type="tns:NODE_ID_TYPE" use="required" />
+ </complexType>
+
+ <!-- Connections. Eine Node eine beliebige Anzahl gerichteter Verbindungen
+ zu einer anderen Node haben -->
+ <complexType name="CONNECTIONS_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XConnections" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="connection" type="tns:CONNECTION_TYPE"
+ minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <!-- Eine gerichtete Verbindung zu einer anderen Node. -->
+ <complexType name="CONNECTION_TYPE">
+ <annotation>
+ <appinfo>
+ <jxb:class name="XConnection" />
+ </appinfo>
+ </annotation>
+ <sequence>
+ <element name="properties" type="tns:PROPERTIES_TYPE"
+ minOccurs="1" maxOccurs="1" />
+ </sequence>
+ <attribute name="to" type="tns:NODE_ID_TYPE" />
+ </complexType>
+
+ <simpleType name="NODE_ID_TYPE">
+ <restriction base="string"></restriction>
+ </simpleType>
+</schema> \ No newline at end of file
diff --git a/files/ksm-example.xml b/files/ksm-example.xml
new file mode 100644
index 0000000..d7c7f8c
--- /dev/null
+++ b/files/ksm-example.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<KyberneticSystemModel>
+ <nodes>
+ <node>
+ <node_ID>0</node_ID>
+ <x_pos>469</x_pos>
+ <y_pos>423</y_pos>
+ <name>new_Node_0</name>
+ <comment />
+ <allowModeration>false</allowModeration>
+ <moderationsteps>1</moderationsteps>
+ <Moderation>1.0</Moderation>
+ <adaptionRate>0.2</adaptionRate>
+ <Reaction>1.0</Reaction>
+ <moderationMethod>linear</moderationMethod>
+ <color>White</color>
+ <std_height>50</std_height>
+ <std_width>220</std_width>
+ <bShowProgressBar>true</bShowProgressBar>
+ <bCustomizeNodeTransparent>false</bCustomizeNodeTransparent>
+ <bCustomizeNodeBorder>true</bCustomizeNodeBorder>
+ <iTextVerticalFactor>33</iTextVerticalFactor>
+ <sIconPath />
+ <scaleFct>
+ </scaleFct>
+ <belongsToHierarchy>0</belongsToHierarchy>
+ <hierarchyDepth>0</hierarchyDepth>
+ <useScaleFct>false</useScaleFct>
+ <inWeightEdges>
+ <inWeightEdge>
+ <tupel_value>0.0</tupel_value>
+ </inWeightEdge>
+ <inWeightEdge>
+ <tupel_value>1.0</tupel_value>
+ </inWeightEdge>
+ <inWeightEdge>
+ <tupel_value>0.0</tupel_value>
+ </inWeightEdge>
+ </inWeightEdges>
+ <UserValue>
+ <tupel_value>3.0</tupel_value>
+ </UserValue>
+ <MinValue>
+ <tupel_value>0.0</tupel_value>
+ </MinValue>
+ <MaxValue>
+ <tupel_value>5.0</tupel_value>
+ </MaxValue>
+ <extern>
+ <tupel_value>0.0</tupel_value>
+ </extern>
+ <scaleCoeffizient>1.0</scaleCoeffizient>
+ </node>
+ <node>
+ <node_ID>1</node_ID>
+ <x_pos>299</x_pos>
+ <y_pos>216</y_pos>
+ <name>new_Node_1</name>
+ ...
+ </node>
+ </nodes>
+ <arrows>
+ <arrow>
+ <start_node>1</start_node>
+ <end_node>0</end_node>
+ <start_pos>6</start_pos>
+ <end_pos>1</end_pos>
+ <bend_xpos>497</bend_xpos>
+ <bend_ypos>313</bend_ypos>
+ <saved>true</saved>
+ <funcType>gui.functions.FuncStraightLine</funcType>
+ <arrowfunction>
+ <m>1.0</m>
+ <b>0.0</b>
+ <position>0</position>
+ <FuncDraggingPoints>
+ <FuncDraggingPoint>
+ <moveHorz>false</moveHorz>
+ <moveVert>true</moveVert>
+ <first>true</first>
+ <last>false</last>
+ <funcPx>0.0</funcPx>
+ <funcPy>0.0</funcPy>
+ </FuncDraggingPoint>
+ <FuncDraggingPoint>
+ <moveHorz>false</moveHorz>
+ <moveVert>true</moveVert>
+ <first>false</first>
+ <last>true</last>
+ <funcPx>1.0</funcPx>
+ <funcPy>1.0</funcPy>
+ </FuncDraggingPoint>
+ </FuncDraggingPoints>
+ </arrowfunction>
+ </arrow>
+ <arrow>
+ <start_node>0</start_node>
+ <end_node>2</end_node>
+ <start_pos>3</start_pos>
+ <end_pos>8</end_pos>
+ <bend_xpos>674</bend_xpos>
+ <bend_ypos>388</bend_ypos>
+ <saved>true</saved>
+ <funcType>gui.functions.FuncStraightLine</funcType>
+ ...
+ </arrow>
+ </arrows>
+ <hierarchies />
+</KyberneticSystemModel> \ No newline at end of file
diff --git a/files/umlstuff.zargo b/files/umlstuff.zargo
new file mode 100644
index 0000000..bebc024
--- /dev/null
+++ b/files/umlstuff.zargo
Binary files differ
diff --git a/images/KSMHistorie.png b/images/KSMHistorie.png
new file mode 100644
index 0000000..d81b36d
--- /dev/null
+++ b/images/KSMHistorie.png
Binary files differ
diff --git a/images/class-diagram-xmlschema.PNG b/images/class-diagram-xmlschema.PNG
new file mode 100644
index 0000000..2944a9c
--- /dev/null
+++ b/images/class-diagram-xmlschema.PNG
Binary files differ
diff --git a/images/class-diagram-xmlschema.ucls b/images/class-diagram-xmlschema.ucls
new file mode 100644
index 0000000..44d62fa
--- /dev/null
+++ b/images/class-diagram-xmlschema.ucls
@@ -0,0 +1,60 @@
+<class-diagram version="1.0.1" icons="true" automaticImage="PNG" always-add-relationships="false" generalizations="true"
+ realizations="true" associations="true" dependencies="false" nesting-relationships="true">
+ <interface id="1" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.xmlschema.api.KSM"
+ project="de.dhbw.horb.ksm.xmlschema" file="/de.dhbw.horb.ksm.xmlschema/src/de/dhbw/horb/ksm/xmlschema/api/KSM.java"
+ binary="false">
+ <position x="412" y="93" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </interface>
+ <class id="2" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.xmlschema.impl.KSMImpl"
+ project="de.dhbw.horb.ksm.xmlschema"
+ file="/de.dhbw.horb.ksm.xmlschema/src/de/dhbw/horb/ksm/xmlschema/impl/KSMImpl.java" binary="false">
+ <position x="415" y="319" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="true" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="3" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.xmlschema.generated.XKSM"
+ project="de.dhbw.horb.ksm.xmlschema"
+ file="/de.dhbw.horb.ksm.xmlschema/src/de/dhbw/horb/ksm/xmlschema/generated/XKSM.java" binary="false">
+ <position x="147" y="335" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="6" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.xmlschema.impl.KSMFactory"
+ project="de.dhbw.horb.ksm.xmlschema"
+ file="/de.dhbw.horb.ksm.xmlschema/src/de/dhbw/horb/ksm/xmlschema/impl/KSMFactory.java" binary="false">
+ <position x="117" y="94" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <dependency>
+ <end type="SOURCE" nodeId="6"/>
+ <end type="TARGET" nodeId="2"/>
+ </dependency>
+ <association>
+ <end type="SOURCE" nodeId="2" navigable="false">
+ <attribute name="xksm"/>
+ <multiplicity minimum="0" maximum="1"/>
+ </end>
+ <end type="TARGET" nodeId="3" navigable="true"/>
+ <display labels="true" multiplicity="true"/>
+ </association>
+ <realization>
+ <end type="SOURCE" nodeId="2"/>
+ <end type="TARGET" nodeId="1"/>
+ </realization>
+ <classifier-display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </classifier-display>
+ <association-display labels="true" multiplicity="true"/>
+</class-diagram> \ No newline at end of file
diff --git a/images/dhbwlogo.png b/images/dhbwlogo.png
new file mode 100644
index 0000000..9179607
--- /dev/null
+++ b/images/dhbwlogo.png
Binary files differ
diff --git a/images/eclipse-checkstyle.png b/images/eclipse-checkstyle.png
new file mode 100644
index 0000000..8c7d6a4
--- /dev/null
+++ b/images/eclipse-checkstyle.png
Binary files differ
diff --git a/images/eclipse-commonnavigator.jpg b/images/eclipse-commonnavigator.jpg
new file mode 100644
index 0000000..36d3cbb
--- /dev/null
+++ b/images/eclipse-commonnavigator.jpg
Binary files differ
diff --git a/images/eclipse-connection-fanrouter.png b/images/eclipse-connection-fanrouter.png
new file mode 100644
index 0000000..3c177d8
--- /dev/null
+++ b/images/eclipse-connection-fanrouter.png
Binary files differ
diff --git a/images/eclipse-connection-manhattan.png b/images/eclipse-connection-manhattan.png
new file mode 100644
index 0000000..84e4fe6
--- /dev/null
+++ b/images/eclipse-connection-manhattan.png
Binary files differ
diff --git a/images/eclipse-extensions.jpg b/images/eclipse-extensions.jpg
new file mode 100644
index 0000000..b6ef40a
--- /dev/null
+++ b/images/eclipse-extensions.jpg
Binary files differ
diff --git a/images/eclipse-gef-mvc.png b/images/eclipse-gef-mvc.png
new file mode 100644
index 0000000..5a4c6c5
--- /dev/null
+++ b/images/eclipse-gef-mvc.png
Binary files differ
diff --git a/images/eclipse-gef-node-connections.jpg b/images/eclipse-gef-node-connections.jpg
new file mode 100644
index 0000000..5cba586
--- /dev/null
+++ b/images/eclipse-gef-node-connections.jpg
Binary files differ
diff --git a/images/eclipse-gef-schema.png b/images/eclipse-gef-schema.png
new file mode 100644
index 0000000..bb553af
--- /dev/null
+++ b/images/eclipse-gef-schema.png
Binary files differ
diff --git a/images/eclipse-gef-schema2.png b/images/eclipse-gef-schema2.png
new file mode 100644
index 0000000..67a1ad5
--- /dev/null
+++ b/images/eclipse-gef-schema2.png
Binary files differ
diff --git a/images/eclipse-gef-uebersicht.png b/images/eclipse-gef-uebersicht.png
new file mode 100644
index 0000000..dfe06b2
--- /dev/null
+++ b/images/eclipse-gef-uebersicht.png
Binary files differ
diff --git a/images/eclipse-gesamtschema.png b/images/eclipse-gesamtschema.png
new file mode 100644
index 0000000..07d75d9
--- /dev/null
+++ b/images/eclipse-gesamtschema.png
Binary files differ
diff --git a/images/eclipse-gesamtschema.svg b/images/eclipse-gesamtschema.svg
new file mode 100644
index 0000000..a89832f
--- /dev/null
+++ b/images/eclipse-gesamtschema.svg
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="502.07141"
+ height="237.21431"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="eclipse-gesamtschema.svg"
+ inkscape:export-filename="/home/yvesf/vcs/sa/images/eclipse-gesamtschema.png"
+ inkscape:export-xdpi="199.94579"
+ inkscape:export-ydpi="199.94579">
+ <defs
+ id="defs4">
+ <pattern
+ inkscape:stockid="Wavy"
+ id="Wavy"
+ height="5.1805778"
+ width="30.066020"
+ patternUnits="userSpaceOnUse"
+ inkscape:collect="always">
+ <path
+ id="path5418"
+ d="M 7.597,0.061 C 5.079,-0.187 2.656,0.302 -0.01,1.788 L -0.01,3.061 C 2.773,1.431 5.173,1.052 7.472,1.280 C 9.770,1.508 11.969,2.361 14.253,3.218 C 18.820,4.931 23.804,6.676 30.066,3.061 L 30.062,1.788 C 23.622,5.497 19.246,3.770 14.691,2.061 C 12.413,1.207 10.115,0.311 7.597,0.061 z "
+ style="fill:black;stroke:none;" />
+ </pattern>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective3609"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3640"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3707"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3707-3"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3753"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3800"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3831"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3862"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3893"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3924"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3971"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4002"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4046"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="303.16439"
+ inkscape:cy="85.973173"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1436"
+ inkscape:window-height="864"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-50.928574,-226.8622)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816"
+ width="500"
+ height="192.14287"
+ x="51.428574"
+ y="227.3622"
+ ry="5" />
+ <g
+ id="g3596"
+ transform="translate(123.57143,-193.78569)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594"
+ sodipodi:role="line">JDT</tspan></text>
+ </g>
+ <g
+ id="g3596-1"
+ transform="translate(-259.46303,-3.7856802)">
+ <rect
+ y="428.79074"
+ x="311.24875"
+ height="38.571442"
+ width="500.71426"
+ id="rect3590-9"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-4"
+ y="456.81277"
+ x="512.98706"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="512.98706"
+ id="tspan3594-7"
+ sodipodi:role="line">OSGi/Equinox</tspan></text>
+ </g>
+ <g
+ id="g3596-8"
+ transform="translate(-105.32019,-117.14285)">
+ <rect
+ y="397.92416"
+ x="163.3916"
+ height="132.29514"
+ width="257.14288"
+ id="rect3590-4"
+ style="opacity:0.06583072;fill:url(#Wavy);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ ry="5" />
+ <text
+ id="text3592-5"
+ y="419.85812"
+ x="195.35397"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="419.85812"
+ x="195.35397"
+ id="tspan3594-0"
+ sodipodi:role="line"
+ style="font-style:italic;-inkscape-font-specification:'1942 report Italic'">RCP</tspan></text>
+ </g>
+ <g
+ id="g3596-3"
+ transform="translate(11.202779,-145.92854)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590-6"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-1"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594-06"
+ sodipodi:role="line">Help</tspan></text>
+ </g>
+ <g
+ id="g3596-2"
+ transform="translate(123.17403,-145.92854)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590-0"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-6"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594-1"
+ sodipodi:role="line">Team</tspan></text>
+ </g>
+ <g
+ id="g3596-2-5"
+ transform="translate(10.036971,-98.785676)">
+ <rect
+ y="428.79074"
+ x="342.35425"
+ height="38.571442"
+ width="179.17442"
+ id="rect3590-0-5"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-6-4"
+ y="456.81277"
+ x="431.54303"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="431.54303"
+ id="tspan3594-1-7"
+ sodipodi:role="line">IDE</tspan></text>
+ </g>
+ <g
+ id="g3596-2-5-6"
+ transform="translate(10.036971,-54.256362)">
+ <rect
+ y="428.79074"
+ x="342.35425"
+ height="38.571442"
+ width="179.17442"
+ id="rect3590-0-5-5"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-6-4-6"
+ y="456.81277"
+ x="431.54303"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="431.54303"
+ id="tspan3594-1-7-9"
+ sodipodi:role="line">Ressourcen</tspan></text>
+ </g>
+ <g
+ id="g3596-37"
+ transform="translate(11.202779,-193.78569)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590-45"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-2"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594-5"
+ sodipodi:role="line">Search</tspan></text>
+ </g>
+ <rect
+ style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1"
+ id="rect3590-7"
+ width="97.857162"
+ height="38.57143"
+ x="68.428566"
+ y="362.14792" />
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="116.59544"
+ y="390.16995"
+ id="text3592-44"><tspan
+ sodipodi:role="line"
+ id="tspan3594-3"
+ x="116.59544"
+ y="390.16995">SWT</tspan></text>
+ <g
+ id="g3596-37-0"
+ transform="translate(-211.3916,-193.78569)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590-45-7"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-2-8"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594-5-6"
+ sodipodi:role="line">...</tspan></text>
+ </g>
+ <rect
+ style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1"
+ id="rect3590-45-8"
+ width="97.857162"
+ height="38.57143"
+ x="196.28572"
+ y="362.14792" />
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="244.45259"
+ y="390.16995"
+ id="text3592-2-4"><tspan
+ sodipodi:role="line"
+ id="tspan3594-5-3"
+ x="244.45259"
+ y="390.16995">JFace</tspan></text>
+ <rect
+ style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1"
+ id="rect3590-0-5-0"
+ width="179.17442"
+ height="38.571442"
+ x="91.341362"
+ y="307.86218" />
+ <g
+ id="g3596-37-0-6"
+ transform="translate(-101.16583,-193.78569)">
+ <rect
+ y="428.79074"
+ x="310.53445"
+ height="38.57143"
+ width="97.857162"
+ id="rect3590-45-7-8"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text3592-2-8-9"
+ y="456.81277"
+ x="358.70132"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="456.81277"
+ x="358.70132"
+ id="tspan3594-5-6-2"
+ sodipodi:role="line">Update</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="180.16687"
+ y="336.59851"
+ id="text3592-2-9"><tspan
+ sodipodi:role="line"
+ id="tspan3594-5-2"
+ x="180.16687"
+ y="336.59851">UI/Workbench</tspan></text>
+ </g>
+</svg>
diff --git a/images/eclipse-outline.png b/images/eclipse-outline.png
new file mode 100644
index 0000000..02827b2
--- /dev/null
+++ b/images/eclipse-outline.png
Binary files differ
diff --git a/images/eclipse-plugin-extensions.png b/images/eclipse-plugin-extensions.png
new file mode 100644
index 0000000..21505a4
--- /dev/null
+++ b/images/eclipse-plugin-extensions.png
Binary files differ
diff --git a/images/eclipse-plugins.png b/images/eclipse-plugins.png
new file mode 100644
index 0000000..14bb9c7
--- /dev/null
+++ b/images/eclipse-plugins.png
Binary files differ
diff --git a/images/eclipse-property-declaration-extensionpoint.jpg b/images/eclipse-property-declaration-extensionpoint.jpg
new file mode 100644
index 0000000..c9be88d
--- /dev/null
+++ b/images/eclipse-property-declaration-extensionpoint.jpg
Binary files differ
diff --git a/images/eclipse-property-usage-extensionpoint.jpg b/images/eclipse-property-usage-extensionpoint.jpg
new file mode 100644
index 0000000..feb572c
--- /dev/null
+++ b/images/eclipse-property-usage-extensionpoint.jpg
Binary files differ
diff --git a/images/eclipse-simulator.jpg b/images/eclipse-simulator.jpg
new file mode 100644
index 0000000..f79590f
--- /dev/null
+++ b/images/eclipse-simulator.jpg
Binary files differ
diff --git a/images/eclipse-target.jpg b/images/eclipse-target.jpg
new file mode 100644
index 0000000..c7991fc
--- /dev/null
+++ b/images/eclipse-target.jpg
Binary files differ
diff --git a/images/eclipse-workbench-high-level.png b/images/eclipse-workbench-high-level.png
new file mode 100644
index 0000000..32bafec
--- /dev/null
+++ b/images/eclipse-workbench-high-level.png
Binary files differ
diff --git a/images/eclipse-workbenchscreen.png b/images/eclipse-workbenchscreen.png
new file mode 100644
index 0000000..4084e4d
--- /dev/null
+++ b/images/eclipse-workbenchscreen.png
Binary files differ
diff --git a/images/eclipse-workbenchscreen.screen b/images/eclipse-workbenchscreen.screen
new file mode 100644
index 0000000..c99ff38
--- /dev/null
+++ b/images/eclipse-workbenchscreen.screen
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model:Screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://wireframesketcher.com/1.0/model.ecore">
+ <widgets xsi:type="model:Window" x="25" y="25" width="816" height="578" text="Java - org.eclipse.draw2d.geometry.Rectangle - Eclipse" measuredWidth="816" measuredHeight="578"/>
+ <widgets xsi:type="model:Menu" x="25" y="44" width="803" text="File,Edit,Source,Refactor,Navigate,Search,Project,Run,Window,Help" measuredWidth="803" measuredHeight="30">
+ <items x="5" y="0" width="30" height="30" text="File"/>
+ <items x="35" y="0" width="34" height="30" text="Edit"/>
+ <items x="69" y="0" width="55" height="30" text="Source"/>
+ <items x="124" y="0" width="62" height="30" text="Refactor"/>
+ <items x="186" y="0" width="67" height="30" text="Navigate"/>
+ <items x="253" y="0" width="55" height="30" text="Search"/>
+ <items x="308" y="0" width="54" height="30" text="Project"/>
+ <items x="362" y="0" width="33" height="30" text="Run"/>
+ <items x="395" y="0" width="57" height="30" text="Window"/>
+ <items x="452" y="0" width="39" height="30" text="Help"/>
+ </widgets>
+ <widgets xsi:type="model:VLine" x="29" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:VLine" x="169" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:VLine" x="239" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:VLine" x="361" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:VLine" x="473" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:VLine" x="569" y="74" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:Icon" x="255" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="271" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="289" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="315" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="341" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="585" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="601" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="619" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="635" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="45" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="71" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="97" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="123" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="149" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="377" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="393" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="411" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="427" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="445" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="461" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="489" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="515" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="541" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="557" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:Icon" x="185" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="211" y="80" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="227" y="80" measuredWidth="16" measuredHeight="16" icon="empty-arrow-down (small)"/>
+ <widgets xsi:type="model:HLine" x="313" y="573" width="2" measuredWidth="2" measuredHeight="6"/>
+ <widgets xsi:type="model:Label" x="318" y="573" text="Read-Only" measuredWidth="69" measuredHeight="25">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:HLine" x="432" y="573" width="2" measuredWidth="2" measuredHeight="6"/>
+ <widgets xsi:type="model:Label" x="437" y="573" text="Smart Insert" measuredWidth="85" measuredHeight="25">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:HLine" x="544" y="573" width="2" measuredWidth="2" measuredHeight="6"/>
+ <widgets xsi:type="model:Label" x="549" y="573" text="41 : 8" measuredWidth="41" measuredHeight="25">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Icon" x="45" y="579" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="69" y="142" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="95" y="142" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:VLine" x="115" y="136" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:Icon" x="127" y="142" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Tree" x="34" y="164" width="135" height="404" text="fakessh&#xA;fakessh2&#xA;ksm&#xA;ksmrcp&#xA;ksm-trunk&#xA;playground1&#xA;quercustest&#xA;rcpapp&#xA;zs&#xA;" measuredWidth="135" measuredHeight="404" verticalScrollbar="true">
+ <items x="0" y="5" width="118" height="23" text="fakessh"/>
+ <items x="0" y="28" width="118" height="23" text="fakessh2"/>
+ <items x="0" y="51" width="118" height="23" text="ksm"/>
+ <items x="0" y="74" width="118" height="23" text="ksmrcp"/>
+ <items x="0" y="97" width="118" height="23" text="ksm-trunk"/>
+ <items x="0" y="120" width="118" height="23" text="playground1"/>
+ <items x="0" y="143" width="118" height="23" text="quercustest"/>
+ <items x="0" y="166" width="118" height="23" text="rcpapp"/>
+ <items x="0" y="189" width="118" height="23" text="zs"/>
+ </widgets>
+ <widgets xsi:type="model:Icon" x="680" y="141" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="706" y="141" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="732" y="141" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="758" y="141" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Icon" x="784" y="141" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:Tree" x="675" y="161" width="153" height="263" text="Rectangle&#xA;-serialVersionUID : long&#xA;-SINGLETON : Rectangle&#xA;-height : int&#xA;-width : int&#xA;-x : int&#xA;-y : int&#xA;-Rectangle()&#xA;-Rectangle(int, int, int, int)&#xA;-Rectangle(Point, Dimension)&#xA;-Rectangle(Point, Point)&#xA;-Rectangle(Rectangle)&#xA;-Rectangle(Rectangle)&#xA;-bottom() : int&#xA;-contains(int, int) : boolean&#xA;-contains(Point) : boolean&#xA;-contains(Rectangle) : boolean&#xA;-crop(Insets) : Rectangle&#xA;-equals(Object) : boolean&#xA;-expand(int, int) : Rectangle&#xA;-expand(Insets) : Rectangle&#xA;-getBottom() : Point&#xA;-getBottomLeft() : Point&#xA;-getBottomRight() : Point&#xA;-getCenter() : Point&#xA;-getCopy() : Rectangle&#xA;-getCropped(Insets) : Rectangle&#xA;-getExpanded(int, int) : Rectangle&#xA;-getExpanded(Insets) : Rectangle&#xA;-getIntersection(Rectangle) : Rectangle&#xA;-getLeft() : Point&#xA;-getLocation() : Point&#xA;-getPosition(Point) : int&#xA;-getResized(int, int) : Rectangle&#xA;-getResized(Dimension) : Rectangle&#xA;-getRight() : Point&#xA;-getSize() : Dimension&#xA;-getTop() : Point&#xA;-getTopLeft() : Point&#xA;-getTopRight() : Point&#xA;-getTranslated(int, int) : Rectangle&#xA;-getTranslated(Point) : Rectangle&#xA;-getTransposed() : Rectangle&#xA;-getUnion(Rectangle) : Rectangle&#xA;-hashCode() : int&#xA;-intersect(Rectangle) : Rectangle&#xA;-intersects(Rectangle) : boolean&#xA;-isEmpty() : boolean&#xA;-performScale(double) : void&#xA;-performTranslate(int, int) : void&#xA;-preciseHeight() : double&#xA;-preciseWidth() : double&#xA;-preciseX() : double&#xA;-preciseY() : double&#xA;-resize(int, int) : Rectangle&#xA;-resize(Dimension) : Rectangle&#xA;-right() : int&#xA;-scale(double) : Rectangle&#xA;-scale(double, double) : Rectangle&#xA;-setBounds(Rectangle) : Rectangle&#xA;-setLocation(int, int) : Rectangle&#xA;-setLocation(Point) : Rectangle&#xA;-setSize(int, int) : Rectangle&#xA;-setSize(Dimension) : Rectangle&#xA;-shrink(int, int) : Rectangle&#xA;-toString() : String&#xA;-touches(Rectangle) : boolean&#xA;-translate(int, int) : Rectangle&#xA;-translate(Point) : Rectangle&#xA;-transpose() : Rectangle&#xA;-union(int, int) : Rectangle&#xA;-union(int, int, int, int) : Rectangle&#xA;-union(Dimension) : Rectangle&#xA;-union(Point) : void&#xA;-union(Rectangle) : Rectangle&#xA;" measuredWidth="153" measuredHeight="263" verticalScrollbar="true">
+ <items x="0" y="5" width="136" height="23" text="Rectangle"/>
+ <items x="0" y="28" width="136" height="23" text="-serialVersionUID : long"/>
+ <items x="0" y="51" width="136" height="23" text="-SINGLETON : Rectangle"/>
+ <items x="0" y="74" width="136" height="23" text="-height : int"/>
+ <items x="0" y="97" width="136" height="23" text="-width : int"/>
+ <items x="0" y="120" width="136" height="23" text="-x : int"/>
+ <items x="0" y="143" width="136" height="23" text="-y : int"/>
+ <items x="0" y="166" width="136" height="23" text="-Rectangle()"/>
+ <items x="0" y="189" width="136" height="23" text="-Rectangle(int, int, int, int)"/>
+ <items x="0" y="212" width="136" height="23" text="-Rectangle(Point, Dimension)"/>
+ <items x="0" y="235" width="136" height="23" text="-Rectangle(Point, Point)"/>
+ <items x="0" y="258" width="136" height="23" text="-Rectangle(Rectangle)"/>
+ <items x="0" y="281" width="136" height="23" text="-Rectangle(Rectangle)"/>
+ <items x="0" y="304" width="136" height="23" text="-bottom() : int"/>
+ <items x="0" y="327" width="136" height="23" text="-contains(int, int) : boolean"/>
+ <items x="0" y="350" width="136" height="23" text="-contains(Point) : boolean"/>
+ <items x="0" y="373" width="136" height="23" text="-contains(Rectangle) : boolean"/>
+ <items x="0" y="396" width="136" height="23" text="-crop(Insets) : Rectangle"/>
+ <items x="0" y="419" width="136" height="23" text="-equals(Object) : boolean"/>
+ <items x="0" y="442" width="136" height="23" text="-expand(int, int) : Rectangle"/>
+ <items x="0" y="465" width="136" height="23" text="-expand(Insets) : Rectangle"/>
+ <items x="0" y="488" width="136" height="23" text="-getBottom() : Point"/>
+ <items x="0" y="511" width="136" height="23" text="-getBottomLeft() : Point"/>
+ <items x="0" y="534" width="136" height="23" text="-getBottomRight() : Point"/>
+ <items x="0" y="557" width="136" height="23" text="-getCenter() : Point"/>
+ <items x="0" y="580" width="136" height="23" text="-getCopy() : Rectangle"/>
+ <items x="0" y="603" width="136" height="23" text="-getCropped(Insets) : Rectangle"/>
+ <items x="0" y="626" width="136" height="23" text="-getExpanded(int, int) : Rectangle"/>
+ <items x="0" y="649" width="136" height="23" text="-getExpanded(Insets) : Rectangle"/>
+ <items x="0" y="672" width="136" height="23" text="-getIntersection(Rectangle) : Rectangle"/>
+ <items x="0" y="695" width="136" height="23" text="-getLeft() : Point"/>
+ <items x="0" y="718" width="136" height="23" text="-getLocation() : Point"/>
+ <items x="0" y="741" width="136" height="23" text="-getPosition(Point) : int"/>
+ <items x="0" y="764" width="136" height="23" text="-getResized(int, int) : Rectangle"/>
+ <items x="0" y="787" width="136" height="23" text="-getResized(Dimension) : Rectangle"/>
+ <items x="0" y="810" width="136" height="23" text="-getRight() : Point"/>
+ <items x="0" y="833" width="136" height="23" text="-getSize() : Dimension"/>
+ <items x="0" y="856" width="136" height="23" text="-getTop() : Point"/>
+ <items x="0" y="879" width="136" height="23" text="-getTopLeft() : Point"/>
+ <items x="0" y="902" width="136" height="23" text="-getTopRight() : Point"/>
+ <items x="0" y="925" width="136" height="23" text="-getTranslated(int, int) : Rectangle"/>
+ <items x="0" y="948" width="136" height="23" text="-getTranslated(Point) : Rectangle"/>
+ <items x="0" y="971" width="136" height="23" text="-getTransposed() : Rectangle"/>
+ <items x="0" y="994" width="136" height="23" text="-getUnion(Rectangle) : Rectangle"/>
+ <items x="0" y="1017" width="136" height="23" text="-hashCode() : int"/>
+ <items x="0" y="1040" width="136" height="23" text="-intersect(Rectangle) : Rectangle"/>
+ <items x="0" y="1063" width="136" height="23" text="-intersects(Rectangle) : boolean"/>
+ <items x="0" y="1086" width="136" height="23" text="-isEmpty() : boolean"/>
+ <items x="0" y="1109" width="136" height="23" text="-performScale(double) : void"/>
+ <items x="0" y="1132" width="136" height="23" text="-performTranslate(int, int) : void"/>
+ <items x="0" y="1155" width="136" height="23" text="-preciseHeight() : double"/>
+ <items x="0" y="1178" width="136" height="23" text="-preciseWidth() : double"/>
+ <items x="0" y="1201" width="136" height="23" text="-preciseX() : double"/>
+ <items x="0" y="1224" width="136" height="23" text="-preciseY() : double"/>
+ <items x="0" y="1247" width="136" height="23" text="-resize(int, int) : Rectangle"/>
+ <items x="0" y="1270" width="136" height="23" text="-resize(Dimension) : Rectangle"/>
+ <items x="0" y="1293" width="136" height="23" text="-right() : int"/>
+ <items x="0" y="1316" width="136" height="23" text="-scale(double) : Rectangle"/>
+ <items x="0" y="1339" width="136" height="23" text="-scale(double, double) : Rectangle"/>
+ <items x="0" y="1362" width="136" height="23" text="-setBounds(Rectangle) : Rectangle"/>
+ <items x="0" y="1385" width="136" height="23" text="-setLocation(int, int) : Rectangle"/>
+ <items x="0" y="1408" width="136" height="23" text="-setLocation(Point) : Rectangle"/>
+ <items x="0" y="1431" width="136" height="23" text="-setSize(int, int) : Rectangle"/>
+ <items x="0" y="1454" width="136" height="23" text="-setSize(Dimension) : Rectangle"/>
+ <items x="0" y="1477" width="136" height="23" text="-shrink(int, int) : Rectangle"/>
+ <items x="0" y="1500" width="136" height="23" text="-toString() : String"/>
+ <items x="0" y="1523" width="136" height="23" text="-touches(Rectangle) : boolean"/>
+ <items x="0" y="1546" width="136" height="23" text="-translate(int, int) : Rectangle"/>
+ <items x="0" y="1569" width="136" height="23" text="-translate(Point) : Rectangle"/>
+ <items x="0" y="1592" width="136" height="23" text="-transpose() : Rectangle"/>
+ <items x="0" y="1615" width="136" height="23" text="-union(int, int) : Rectangle"/>
+ <items x="0" y="1638" width="136" height="23" text="-union(int, int, int, int) : Rectangle"/>
+ <items x="0" y="1661" width="136" height="23" text="-union(Dimension) : Rectangle"/>
+ <items x="0" y="1684" width="136" height="23" text="-union(Point) : void"/>
+ <items x="0" y="1707" width="136" height="23" text="-union(Rectangle) : Rectangle"/>
+ </widgets>
+ <widgets xsi:type="model:TextArea" x="185" y="136" width="476" height="288" text=" * Copyright (c) 2000, 2010 IBM Corporation and others.&#xA;package org.eclipse.draw2d.geometry;&#xA;&#xA;import org.eclipse.draw2d.PositionConstants;&#xA;&#xA;public class Rectangle&#xA; implements &#xA;Cloneable, java.io.Serializable,&#xA; Translatable {&#xA;&#x9;/** the X value */&#xA;&#x9;public int x;&#xA;&#x9;/** the Y value */&#xA;&#x9;public int y;&#xA;&#x9;/** the width */&#xA;&#x9;public int width;&#xA;&#x9;/** the height */&#xA;&#x9;public int height;&#xA;&#xA;&#x9;/**&#xA;&#x9; * A singleton for use in short calculations. Use to avoid newing&#xA;&#x9; * unnecessary objects.&#xA;&#x9; */&#xA;&#x9;public static final Rectangle SINGLETON = new Rectangle();&#xA;&#xA;&#x9;static final long serialVersionUID = 1;&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs a Rectangle at the origin with zero width and height.&#xA;&#x9; * &#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle() {&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs a Rectangle given a location and size.&#xA;&#x9; * &#xA;&#x9; * @param p&#xA;&#x9; * the location&#xA;&#x9; * @param size&#xA;&#x9; * the size&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle(Point p, Dimension size) {&#xA;&#x9;&#x9;this(p.x, p.y, size.width, size.height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs a copy of the provided Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle supplying the initial values&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle(Rectangle rect) {&#xA;&#x9;&#x9;this(rect.x, rect.y, rect.width, rect.height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs a copy of the provided SWT&#xA;&#x9; * {@link org.eclipse.swt.graphics.Rectangle}.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * The SWT Rectangle being copied&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle(org.eclipse.swt.graphics.Rectangle rect) {&#xA;&#x9;&#x9;this(rect.x, rect.y, rect.width, rect.height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs a Rectangle with the provided values.&#xA;&#x9; * &#xA;&#x9; * @param x&#xA;&#x9; * X location&#xA;&#x9; * @param y&#xA;&#x9; * Y location&#xA;&#x9; * @param width&#xA;&#x9; * Width of the rectangle&#xA;&#x9; * @param height&#xA;&#x9; * Height of the rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle(int x, int y, int width, int height) {&#xA;&#x9;&#x9;this.x = x;&#xA;&#x9;&#x9;this.y = y;&#xA;&#x9;&#x9;this.width = width;&#xA;&#x9;&#x9;this.height = height;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Constructs the smallest Rectangle that contains the specified Points.&#xA;&#x9; * &#xA;&#x9; * @param p1&#xA;&#x9; * Upper left hand corner&#xA;&#x9; * @param p2&#xA;&#x9; * Lower right hand corner&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle(Point p1, Point p2) {&#xA;&#x9;&#x9;this.x = Math.min(p1.x, p2.x);&#xA;&#x9;&#x9;this.y = Math.min(p1.y, p2.y);&#xA;&#x9;&#x9;this.width = Math.abs(p2.x - p1.x) + 1;&#xA;&#x9;&#x9;this.height = Math.abs(p2.y - p1.y) + 1;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns the y-coordinate of the bottom of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return The Y coordinate of the bottom&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public int bottom() {&#xA;&#x9;&#x9;return y + height;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns whether the given point is within the boundaries of this&#xA;&#x9; * Rectangle. The boundaries are inclusive of the top and left edges, but&#xA;&#x9; * exclusive of the bottom and right edges.&#xA;&#x9; * &#xA;&#x9; * @param pt&#xA;&#x9; * Point being tested for containment&#xA;&#x9; * @return true if the Point is within this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean contains(Point pt) {&#xA;&#x9;&#x9;return contains(pt.x, pt.y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>true&lt;/code> if the given rectangle is contained within the&#xA;&#x9; * boundaries of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * the Rectangle to test&#xA;&#x9; * @return true if the Rectangle is within this Rectangle&#xA;&#x9; */&#xA;&#x9;public boolean contains(Rectangle rect) {&#xA;&#x9;&#x9;return x &lt;= rect.x &amp;&amp; y &lt;= rect.y &amp;&amp; right() >= rect.right()&#xA;&#x9;&#x9;&#x9;&#x9;&amp;&amp; bottom() >= rect.bottom();&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns whether the given coordinates are within the boundaries of this&#xA;&#x9; * Rectangle. The boundaries are inclusive of the top and left edges, but&#xA;&#x9; * exclusive of the bottom and right edges.&#xA;&#x9; * &#xA;&#x9; * @param x&#xA;&#x9; * X value&#xA;&#x9; * @param y&#xA;&#x9; * Y value&#xA;&#x9; * @return true if the coordinates are within this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean contains(int x, int y) {&#xA;&#x9;&#x9;return y >= this.y &amp;&amp; y &lt; this.y + this.height &amp;&amp; x >= this.x&#xA;&#x9;&#x9;&#x9;&#x9;&amp;&amp; x &lt; this.x + this.width;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Crops this rectangle by the amount specified in &lt;code>insets&lt;/code>.&#xA;&#x9; * &#xA;&#x9; * @param insets&#xA;&#x9; * Insets to be removed from the Rectangle&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle crop(Insets insets) {&#xA;&#x9;&#x9;if (insets == null)&#xA;&#x9;&#x9;&#x9;return this;&#xA;&#x9;&#x9;x += insets.left;&#xA;&#x9;&#x9;y += insets.top;&#xA;&#x9;&#x9;width -= (insets.getWidth());&#xA;&#x9;&#x9;height -= (insets.getHeight());&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns whether the input object is equal to this Rectangle or not.&#xA;&#x9; * Rectangles are equivalent if their x, y, height, and width values are the&#xA;&#x9; * same.&#xA;&#x9; * &#xA;&#x9; * @param o&#xA;&#x9; * Object being tested for equality&#xA;&#x9; * @return Returns the result of the equality test&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean equals(Object o) {&#xA;&#x9;&#x9;if (this == o)&#xA;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;if (o instanceof Rectangle) {&#xA;&#x9;&#x9;&#x9;Rectangle r = (Rectangle) o;&#xA;&#x9;&#x9;&#x9;return (x == r.x) &amp;&amp; (y == r.y) &amp;&amp; (width == r.width)&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&amp;&amp; (height == r.height);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Expands the horizontal and vertical sides of this Rectangle with the&#xA;&#x9; * values provided as input, and returns this for convenience. The location&#xA;&#x9; * of its center is kept constant.&#xA;&#x9; * &#xA;&#x9; * @param h&#xA;&#x9; * Horizontal increment&#xA;&#x9; * @param v&#xA;&#x9; * Vertical increment&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle expand(int h, int v) {&#xA;&#x9;&#x9;return shrink(-h, -v);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Expands the horizontal and vertical sides of this Rectangle by the width&#xA;&#x9; * and height of the given Insets, and returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @param insets&#xA;&#x9; * contains the amounts to expand on each side&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle expand(Insets insets) {&#xA;&#x9;&#x9;x -= insets.left;&#xA;&#x9;&#x9;y -= insets.top;&#xA;&#x9;&#x9;height += insets.getHeight();&#xA;&#x9;&#x9;width += insets.getWidth();&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point representing the middle point of the bottom side of&#xA;&#x9; * this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the bottom of the Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getBottom() {&#xA;&#x9;&#x9;return new Point(x + width / 2, bottom());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point representing the bottom left point of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the bottom left of the rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getBottomLeft() {&#xA;&#x9;&#x9;return new Point(x, y + height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point representing the bottom right point of this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the bottom right of the rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getBottomRight() {&#xA;&#x9;&#x9;return new Point(x + width, y + height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new point representing the center of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the center of the rectangle&#xA;&#x9; */&#xA;&#x9;public Point getCenter() {&#xA;&#x9;&#x9;return new Point(x + width / 2, y + height / 2);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which has the exact same parameters as this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Copy of this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getCopy() {&#xA;&#xA;&#x9;&#x9;if (getClass() == Rectangle.class) {&#xA;&#x9;&#x9;&#x9;/* avoid clone() call cost see bug #260740 */&#xA;&#x9;&#x9;&#x9;return new Rectangle(this);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;try {&#xA;&#x9;&#x9;&#x9;&#x9;return (Rectangle) clone();&#xA;&#x9;&#x9;&#x9;} catch (CloneNotSupportedException exc) {&#xA;&#x9;&#x9;&#x9;&#x9;return new Rectangle(this);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle with the specified insets cropped.&#xA;&#x9; * &#xA;&#x9; * @param insets&#xA;&#x9; * Insets being cropped from the Rectangle&#xA;&#x9; * @return Cropped new Rectangle&#xA;&#x9; */&#xA;&#x9;public Rectangle getCropped(Insets insets) {&#xA;&#x9;&#x9;Rectangle r = new Rectangle(this);&#xA;&#x9;&#x9;r.crop(insets);&#xA;&#x9;&#x9;return r;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new incremented Rectangle, where the sides are expanded by the&#xA;&#x9; * horizonatal and vertical values provided. The center of the Rectangle is&#xA;&#x9; * maintained constant.&#xA;&#x9; * &#xA;&#x9; * @param h&#xA;&#x9; * Horizontal increment&#xA;&#x9; * @param v&#xA;&#x9; * Vertical inrement&#xA;&#x9; * @return A new expanded Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getExpanded(int h, int v) {&#xA;&#x9;&#x9;return new Rectangle(this).expand(h, v);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Creates and returns a new Rectangle with the bounds of &lt;code>this&lt;/code>&#xA;&#x9; * Rectangle, expanded by the given Insets.&#xA;&#x9; * &#xA;&#x9; * @param insets&#xA;&#x9; * The insets used to expand this rectangle&#xA;&#x9; * @return A new expanded Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getExpanded(Insets insets) {&#xA;&#x9;&#x9;return new Rectangle(this).expand(insets);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which has the intersection of this Rectangle and&#xA;&#x9; * the rectangle provided as input. Returns an empty Rectangle if there is&#xA;&#x9; * no interection.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle provided to test for intersection&#xA;&#x9; * @return A new Rectangle representing the intersection&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getIntersection(Rectangle rect) {&#xA;&#x9;&#x9;int x1 = Math.max(x, rect.x);&#xA;&#x9;&#x9;int x2 = Math.min(x + width, rect.x + rect.width);&#xA;&#x9;&#x9;int y1 = Math.max(y, rect.y);&#xA;&#x9;&#x9;int y2 = Math.min(y + height, rect.y + rect.height);&#xA;&#x9;&#x9;if (((x2 - x1) &lt; 0) || ((y2 - y1) &lt; 0))&#xA;&#x9;&#x9;&#x9;return new Rectangle(0, 0, 0, 0); // No intersection&#xA;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;return new Rectangle(x1, y1, x2 - x1, y2 - y1);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point representing the middle point of the left hand side&#xA;&#x9; * of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the left of the Rectangle&#xA;&#x9; */&#xA;&#x9;public Point getLeft() {&#xA;&#x9;&#x9;return new Point(x, y + height / 2);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns the upper left hand corner of the rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Location of the rectangle&#xA;&#x9; * @see #setLocation(Point)&#xA;&#x9; */&#xA;&#x9;public Point getLocation() {&#xA;&#x9;&#x9;return new Point(x, y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * &lt;P>&#xA;&#x9; * Returns an integer which represents the position of the given point with&#xA;&#x9; * respect to this rectangle. Possible return values are bitwise ORs of the&#xA;&#x9; * constants WEST, EAST, NORTH, and SOUTH as found in&#xA;&#x9; * {@link org.eclipse.draw2d.PositionConstants}.&#xA;&#x9; * &#xA;&#x9; * &lt;P>&#xA;&#x9; * Returns PositionConstant.NONE if the given point is inside this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param pt&#xA;&#x9; * The Point whose position has to be determined&#xA;&#x9; * @return An &lt;code>int&lt;/code> which is a PositionConstant&#xA;&#x9; * @see org.eclipse.draw2d.PositionConstants&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public int getPosition(Point pt) {&#xA;&#x9;&#x9;int result = PositionConstants.NONE;&#xA;&#xA;&#x9;&#x9;if (contains(pt))&#xA;&#x9;&#x9;&#x9;return result;&#xA;&#xA;&#x9;&#x9;if (pt.x &lt; x)&#xA;&#x9;&#x9;&#x9;result = PositionConstants.WEST;&#xA;&#x9;&#x9;else if (pt.x >= (x + width))&#xA;&#x9;&#x9;&#x9;result = PositionConstants.EAST;&#xA;&#xA;&#x9;&#x9;if (pt.y &lt; y)&#xA;&#x9;&#x9;&#x9;result = result | PositionConstants.NORTH;&#xA;&#x9;&#x9;else if (pt.y >= (y + height))&#xA;&#x9;&#x9;&#x9;result = result | PositionConstants.SOUTH;&#xA;&#xA;&#x9;&#x9;return result;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which is equivalent to this Rectangle with its&#xA;&#x9; * dimensions modified by the passed width &lt;i>w&lt;/i> and height &lt;i>h&lt;/i>.&#xA;&#x9; * &#xA;&#x9; * @param w&#xA;&#x9; * Amount by which width is to be resized&#xA;&#x9; * @param h&#xA;&#x9; * Amount by which height is to be resized&#xA;&#x9; * @return a new rectangle with its width and height modified&#xA;&#x9; */&#xA;&#x9;public Rectangle getResized(int w, int h) {&#xA;&#x9;&#x9;return new Rectangle(this).resize(w, h);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which is equivalent to this Rectangle with its&#xA;&#x9; * dimensions modified by the passed Dimension &lt;i>d&lt;/i>.&#xA;&#x9; * &#xA;&#x9; * @param d&#xA;&#x9; * Dimensions by which the rectangle's size should be modified&#xA;&#x9; * @return The new rectangle with the modified dimensions&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getResized(Dimension d) {&#xA;&#x9;&#x9;return new Rectangle(this).resize(d);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point which represents the middle point of the right hand&#xA;&#x9; * side of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the right of the Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getRight() {&#xA;&#x9;&#x9;return new Point(right(), y + height / 2);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Retuns the dimensions of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Size of this Rectangle as a Dimension&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Dimension getSize() {&#xA;&#x9;&#x9;return new Dimension(width, height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point which represents the middle point of the top side of&#xA;&#x9; * this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the top of the Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getTop() {&#xA;&#x9;&#x9;return new Point(x + width / 2, y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point which represents the top left hand corner of this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the top left of the rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getTopLeft() {&#xA;&#x9;&#x9;return new Point(x, y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Point which represents the top right hand corner of this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return Point at the top right of the rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Point getTopRight() {&#xA;&#x9;&#x9;return new Point(x + width, y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which is shifted along each axis by the passed&#xA;&#x9; * values.&#xA;&#x9; * &#xA;&#x9; * @param dx&#xA;&#x9; * Displacement along X axis&#xA;&#x9; * @param dy&#xA;&#x9; * Displacement along Y axis&#xA;&#x9; * @return The new translated rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getTranslated(int dx, int dy) {&#xA;&#x9;&#x9;return new Rectangle(this).translate(dx, dy);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which is shifted by the position of the given&#xA;&#x9; * Point.&#xA;&#x9; * &#xA;&#x9; * @param pt&#xA;&#x9; * Point providing the amount of shift along each axis&#xA;&#x9; * @return The new translated Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getTranslated(Point pt) {&#xA;&#x9;&#x9;return new Rectangle(this).translate(pt);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new rectangle whose width and height have been interchanged, as&#xA;&#x9; * well as its x and y values. This can be useful in orientation changes.&#xA;&#x9; * &#xA;&#x9; * @return The transposed rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getTransposed() {&#xA;&#x9;&#x9;Rectangle r = new Rectangle(this);&#xA;&#x9;&#x9;r.transpose();&#xA;&#x9;&#x9;return r;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns a new Rectangle which contains both this Rectangle and the&#xA;&#x9; * Rectangle supplied as input.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle for calculating union&#xA;&#x9; * @return A new unioned Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle getUnion(Rectangle rect) {&#xA;&#x9;&#x9;if (rect == null || rect.isEmpty())&#xA;&#x9;&#x9;&#x9;return new Rectangle(this);&#xA;&#x9;&#x9;Rectangle union = new Rectangle(Math.min(x, rect.x),&#xA;&#x9;&#x9;&#x9;&#x9;Math.min(y, rect.y), 0, 0);&#xA;&#x9;&#x9;union.width = Math.max(x + width, rect.x + rect.width) - union.x;&#xA;&#x9;&#x9;union.height = Math.max(y + height, rect.y + rect.height) - union.y;&#xA;&#x9;&#x9;return union;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @see java.lang.Object#hashCode()&#xA;&#x9; */&#xA;&#x9;public int hashCode() {&#xA;&#x9;&#x9;return (x + height + 1) * (y + width + 1) ^ x ^ y;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the size of this Rectangle to the intersection region with the&#xA;&#x9; * Rectangle supplied as input, and returns this for convenience. The&#xA;&#x9; * location and dimensions are set to zero if there is no intersection with&#xA;&#x9; * the input Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle for the calculating intersection.&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle intersect(Rectangle rect) {&#xA;&#x9;&#x9;int x1 = Math.max(x, rect.x);&#xA;&#x9;&#x9;int x2 = Math.min(x + width, rect.x + rect.width);&#xA;&#x9;&#x9;int y1 = Math.max(y, rect.y);&#xA;&#x9;&#x9;int y2 = Math.min(y + height, rect.y + rect.height);&#xA;&#x9;&#x9;if (((x2 - x1) &lt; 0) || ((y2 - y1) &lt; 0))&#xA;&#x9;&#x9;&#x9;x = y = width = height = 0; // No intersection&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;x = x1;&#xA;&#x9;&#x9;&#x9;y = y1;&#xA;&#x9;&#x9;&#x9;width = x2 - x1;&#xA;&#x9;&#x9;&#x9;height = y2 - y1;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>true&lt;/code> if the input Rectangle intersects this&#xA;&#x9; * Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle for the intersetion test&#xA;&#x9; * @return &lt;code>true&lt;/code> if the input Rectangle intersects this&#xA;&#x9; * Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean intersects(Rectangle rect) {&#xA;&#x9;&#x9;return rect.x &lt; x + width &amp;&amp; rect.y &lt; y + height&#xA;&#x9;&#x9;&#x9;&#x9;&amp;&amp; rect.x + rect.width > x &amp;&amp; rect.y + rect.height > y;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>true&lt;/code> if this Rectangle's width or height is less&#xA;&#x9; * than or equal to 0.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>true&lt;/code> if this Rectangle is empty&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean isEmpty() {&#xA;&#x9;&#x9;return width &lt;= 0 || height &lt;= 0;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @see Translatable#performScale(double)&#xA;&#x9; */&#xA;&#x9;public void performScale(double factor) {&#xA;&#x9;&#x9;scale(factor);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @see Translatable#performTranslate(int, int)&#xA;&#x9; */&#xA;&#x9;public void performTranslate(int dx, int dy) {&#xA;&#x9;&#x9;translate(dx, dy);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Resizes this Rectangle by the Dimension provided as input and returns&#xA;&#x9; * this for convenience. This Rectange's width will become this.width +&#xA;&#x9; * sizeDelta.width. Likewise for height.&#xA;&#x9; * &#xA;&#x9; * @param sizeDelta&#xA;&#x9; * Resize data as a Dimension&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle resize(Dimension sizeDelta) {&#xA;&#x9;&#x9;width += sizeDelta.width;&#xA;&#x9;&#x9;height += sizeDelta.height;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Resizes this Rectangle by the values supplied as input and returns this&#xA;&#x9; * for convenience. This Rectangle's width will become this.width + dw. This&#xA;&#x9; * Rectangle's height will become this.height + dh.&#xA;&#x9; * &#xA;&#x9; * @param dw&#xA;&#x9; * Amount by which width is to be resized&#xA;&#x9; * @param dh&#xA;&#x9; * Amount by which height is to be resized&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle resize(int dw, int dh) {&#xA;&#x9;&#x9;width += dw;&#xA;&#x9;&#x9;height += dh;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns the x-coordinate of the right side of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return The X coordinate of the right side&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public int right() {&#xA;&#x9;&#x9;return x + width;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Scales the location and size of this Rectangle by the given scale and&#xA;&#x9; * returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @param scaleFactor&#xA;&#x9; * The factor by which this rectangle will be scaled&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public final Rectangle scale(double scaleFactor) {&#xA;&#x9;&#x9;return scale(scaleFactor, scaleFactor);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Scales the location and size of this Rectangle by the given scales and&#xA;&#x9; * returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @param scaleX&#xA;&#x9; * the factor by which the X dimension has to be scaled&#xA;&#x9; * @param scaleY&#xA;&#x9; * the factor by which the Y dimension has to be scaled&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle scale(double scaleX, double scaleY) {&#xA;&#x9;&#x9;int oldX = x;&#xA;&#x9;&#x9;int oldY = y;&#xA;&#x9;&#x9;x = (int) (Math.floor(x * scaleX));&#xA;&#x9;&#x9;y = (int) (Math.floor(y * scaleY));&#xA;&#x9;&#x9;width = (int) (Math.ceil((oldX + width) * scaleX)) - x;&#xA;&#x9;&#x9;height = (int) (Math.ceil((oldY + height) * scaleY)) - y;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the parameters of this Rectangle from the Rectangle passed in and&#xA;&#x9; * returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle providing the bounding values&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle setBounds(Rectangle rect) {&#xA;&#x9;&#x9;x = rect.x;&#xA;&#x9;&#x9;y = rect.y;&#xA;&#x9;&#x9;width = rect.width;&#xA;&#x9;&#x9;height = rect.height;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the location of this Rectangle to the point given as input and&#xA;&#x9; * returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @param p&#xA;&#x9; * New position of this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle setLocation(Point p) {&#xA;&#x9;&#x9;x = p.x;&#xA;&#x9;&#x9;y = p.y;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the location of this Rectangle to the coordinates given as input and&#xA;&#x9; * returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @param x1&#xA;&#x9; * The new X coordinate&#xA;&#x9; * @param y1&#xA;&#x9; * The new Y coordinate&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle setLocation(int x1, int y1) {&#xA;&#x9;&#x9;x = x1;&#xA;&#x9;&#x9;y = y1;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the width and height of this Rectangle to the width and height of&#xA;&#x9; * the given Dimension and returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @param d&#xA;&#x9; * The new Dimension&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle setSize(Dimension d) {&#xA;&#x9;&#x9;width = d.width;&#xA;&#x9;&#x9;height = d.height;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Sets the width of this Rectangle to &lt;i>w&lt;/i> and the height of this&#xA;&#x9; * Rectangle to &lt;i>h&lt;/i> and returns this for convenience.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @param w&#xA;&#x9; * The new width&#xA;&#x9; * @param h&#xA;&#x9; * The new height&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle setSize(int w, int h) {&#xA;&#x9;&#x9;width = w;&#xA;&#x9;&#x9;height = h;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Shrinks the sides of this Rectangle by the horizontal and vertical values&#xA;&#x9; * provided as input, and returns this Rectangle for convenience. The center&#xA;&#x9; * of this Rectangle is kept constant.&#xA;&#x9; * &#xA;&#x9; * @param h&#xA;&#x9; * Horizontal reduction amount&#xA;&#x9; * @param v&#xA;&#x9; * Vertical reduction amount&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle shrink(int h, int v) {&#xA;&#x9;&#x9;x += h;&#xA;&#x9;&#x9;width -= (h + h);&#xA;&#x9;&#x9;y += v;&#xA;&#x9;&#x9;height -= (v + v);&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns the description of this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return String containing the description&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public String toString() {&#xA;&#x9;&#x9;return &quot;Rectangle(&quot; + x + &quot;, &quot; + y + &quot;, &quot; + //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$&#xA;&#x9;&#x9;&#x9;&#x9;width + &quot;, &quot; + height + &quot;)&quot;;//$NON-NLS-2$//$NON-NLS-1$&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>true&lt;/code> if the input Rectangle touches this Rectangle.&#xA;&#x9; * &#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle being checked for contact&#xA;&#x9; * @return &lt;code>true&lt;/code> if rect touches this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public boolean touches(Rectangle rect) {&#xA;&#x9;&#x9;return rect.x &lt;= x + width &amp;&amp; rect.y &lt;= y + height&#xA;&#x9;&#x9;&#x9;&#x9;&amp;&amp; rect.x + rect.width >= x &amp;&amp; rect.y + rect.height >= y;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Moves this Rectangle horizontally by the x value of the given Point and&#xA;&#x9; * vertically by the y value of the given Point, then returns this Rectangle&#xA;&#x9; * for convenience.&#xA;&#x9; * &#xA;&#x9; * @param p&#xA;&#x9; * Point which provides translation information&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; */&#xA;&#x9;public Rectangle translate(Point p) {&#xA;&#x9;&#x9;x += p.x;&#xA;&#x9;&#x9;y += p.y;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Moves this Rectangle horizontally by dx and vertically by dy, then&#xA;&#x9; * returns this Rectangle for convenience.&#xA;&#x9; * &#xA;&#x9; * @param dx&#xA;&#x9; * Shift along X axis&#xA;&#x9; * @param dy&#xA;&#x9; * Shift along Y axis&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle translate(int dx, int dy) {&#xA;&#x9;&#x9;x += dx;&#xA;&#x9;&#x9;y += dy;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Switches the x and y values, as well as the width and height of this&#xA;&#x9; * Rectangle. Useful for orientation changes.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle transpose() {&#xA;&#x9;&#x9;int temp = x;&#xA;&#x9;&#x9;x = y;&#xA;&#x9;&#x9;y = temp;&#xA;&#x9;&#x9;temp = width;&#xA;&#x9;&#x9;width = height;&#xA;&#x9;&#x9;height = temp;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Unions this Rectangle's width and height with the specified Dimension.&#xA;&#x9; * &#xA;&#x9; * @param d&#xA;&#x9; * Dimension being unioned&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle union(Dimension d) {&#xA;&#x9;&#x9;width = Math.max(width, d.width);&#xA;&#x9;&#x9;height = Math.max(height, d.height);&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Updates this Rectangle's bounds to the minimum size which can hold both&#xA;&#x9; * this Rectangle and the coordinate (x,y).&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @param x1&#xA;&#x9; * X coordinate&#xA;&#x9; * @param y1&#xA;&#x9; * Y coordinate&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle union(int x1, int y1) {&#xA;&#x9;&#x9;if (x1 &lt; x) {&#xA;&#x9;&#x9;&#x9;width += (x - x1);&#xA;&#x9;&#x9;&#x9;x = x1;&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;int right = x + width;&#xA;&#x9;&#x9;&#x9;if (x1 >= right) {&#xA;&#x9;&#x9;&#x9;&#x9;right = x1 + 1;&#xA;&#x9;&#x9;&#x9;&#x9;width = right - x;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;if (y1 &lt; y) {&#xA;&#x9;&#x9;&#x9;height += (y - y1);&#xA;&#x9;&#x9;&#x9;y = y1;&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;int bottom = y + height;&#xA;&#x9;&#x9;&#x9;if (y1 >= bottom) {&#xA;&#x9;&#x9;&#x9;&#x9;bottom = y1 + 1;&#xA;&#x9;&#x9;&#x9;&#x9;height = bottom - y;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Updates this Rectangle's bounds to the minimum size which can hold both&#xA;&#x9; * this Rectangle and the given Point.&#xA;&#x9; * &#xA;&#x9; * @param p&#xA;&#x9; * Point to be unioned with this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public void union(Point p) {&#xA;&#x9;&#x9;union(p.x, p.y);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Updates this Rectangle's dimensions to the minimum size which can hold&#xA;&#x9; * both this Rectangle and the given Rectangle.&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @param rect&#xA;&#x9; * Rectangle to be unioned with this Rectangle&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle union(Rectangle rect) {&#xA;&#x9;&#x9;if (rect == null)&#xA;&#x9;&#x9;&#x9;return this;&#xA;&#x9;&#x9;return union(rect.x, rect.y, rect.width, rect.height);&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Updates this Rectangle's dimensions to the minimum size which can hold&#xA;&#x9; * both this Rectangle and the rectangle (x, y, w, h).&#xA;&#x9; * &#xA;&#x9; * @param x&#xA;&#x9; * X coordiante of desired union.&#xA;&#x9; * @param y&#xA;&#x9; * Y coordiante of desired union.&#xA;&#x9; * @param w&#xA;&#x9; * Width of desired union.&#xA;&#x9; * @param h&#xA;&#x9; * Height of desired union.&#xA;&#x9; * @return &lt;code>this&lt;/code> for convenience&#xA;&#x9; * @since 2.0&#xA;&#x9; */&#xA;&#x9;public Rectangle union(int x, int y, int w, int h) {&#xA;&#x9;&#x9;int right = Math.max(this.x + width, x + w);&#xA;&#x9;&#x9;int bottom = Math.max(this.y + height, y + h);&#xA;&#x9;&#x9;this.x = Math.min(this.x, x);&#xA;&#x9;&#x9;this.y = Math.min(this.y, y);&#xA;&#x9;&#x9;this.width = right - this.x;&#xA;&#x9;&#x9;this.height = bottom - this.y;&#xA;&#x9;&#x9;return this;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>double&lt;/code> x coordinate&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>double&lt;/code> x coordinate&#xA;&#x9; * @since 3.4&#xA;&#x9; */&#xA;&#x9;public double preciseX() {&#xA;&#x9;&#x9;return x;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>double&lt;/code> y coordinate&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>double&lt;/code> y coordinate&#xA;&#x9; * @since 3.4&#xA;&#x9; */&#xA;&#x9;public double preciseY() {&#xA;&#x9;&#x9;return y;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>double&lt;/code> width&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>double&lt;/code> width&#xA;&#x9; * @since 3.4&#xA;&#x9; */&#xA;&#x9;public double preciseWidth() {&#xA;&#x9;&#x9;return width;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * Returns &lt;code>double&lt;/code> height&#xA;&#x9; * &#xA;&#x9; * @return &lt;code>double&lt;/code> height&#xA;&#x9; * @since 3.4&#xA;&#x9; */&#xA;&#x9;public double preciseHeight() {&#xA;&#x9;&#x9;return height;&#xA;&#x9;}&#xA;&#xA;}&#xA;" measuredWidth="476" measuredHeight="288" verticalScrollbar="true">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="175" y="106" text="NodeFigure.java,Figure.class,Rectangle.class" measuredWidth="336" measuredHeight="30" selection="2">
+ <items x="1" y="0" width="122" height="30" text="NodeFigure.java"/>
+ <items x="123" y="0" width="94" height="30" text="Figure.class"/>
+ <items x="217" y="0" width="118" height="30" text="Rectangle.class"/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="672" y="106" text="Outline" measuredWidth="67" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="65" height="30" text="Outline"/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="175" y="430" text="Problems,Javadoc,Declaration,Console" measuredWidth="315" measuredHeight="30" selection="4">
+ <items x="1" y="0" width="80" height="30" text="Problems"/>
+ <items x="81" y="0" width="69" height="30" text="Javadoc"/>
+ <items x="150" y="0" width="93" height="30" text="Declaration"/>
+ <items x="243" y="0" width="71" height="30" text="Console"/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="178" y="460" text="No consoles to display at this time." measuredWidth="229" measuredHeight="25">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="31" y="106" text="Project Explorer" measuredWidth="122" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="120" height="30" text="Project Explorer"/>
+ </widgets>
+ <widgets xsi:type="model:Icon" x="154" y="142" measuredWidth="16" measuredHeight="16" icon="image (small)"/>
+ <widgets xsi:type="model:VLine" x="172" y="106" height="465" measuredWidth="6" measuredHeight="465"/>
+ <widgets xsi:type="model:HLine" x="175" y="427" width="666" measuredWidth="666" measuredHeight="6"/>
+ <widgets xsi:type="model:VLine" x="669" y="106" height="321" measuredWidth="6" measuredHeight="321"/>
+ <widgets xsi:type="model:VLine" x="29" y="573" height="30" measuredWidth="6" measuredHeight="30"/>
+ <widgets xsi:type="model:VLine" x="655" y="573" height="30" measuredWidth="6" measuredHeight="30"/>
+ <widgets xsi:type="model:Tooltip" x="650" y="38" text="CoolBar" measuredWidth="67" measuredHeight="42">
+ <font bold="true" italic="true"/>
+ </widgets>
+ <widgets xsi:type="model:Tooltip" x="489" y="13" text="Menu" measuredWidth="50" measuredHeight="42">
+ <font bold="true" italic="true"/>
+ </widgets>
+ <widgets xsi:type="model:Tooltip" x="616" y="555" text="StatusBar" measuredWidth="82" measuredHeight="42">
+ <font bold="true" italic="true"/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="377" y="259" text="IEditorPart\nInstances" measuredWidth="230" measuredHeight="110" textAlignment="Center">
+ <font size="32"/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="86" y="497" text="ViewPart's" measuredWidth="225" measuredHeight="59" textAlignment="Center">
+ <font size="32"/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="606" y="408" text="ViewPart's" measuredWidth="225" measuredHeight="59" textAlignment="Center">
+ <font size="32"/>
+ </widgets>
+ <hRuler/>
+ <vRuler/>
+ <font/>
+</model:Screen>
diff --git a/images/ext-property-descriptors.PNG b/images/ext-property-descriptors.PNG
new file mode 100644
index 0000000..07571e0
--- /dev/null
+++ b/images/ext-property-descriptors.PNG
Binary files differ
diff --git a/images/ext-property-descriptors.ucls b/images/ext-property-descriptors.ucls
new file mode 100644
index 0000000..9a398e7
--- /dev/null
+++ b/images/ext-property-descriptors.ucls
@@ -0,0 +1,73 @@
+<class-diagram version="1.0.1" icons="true" automaticImage="PNG" always-add-relationships="false" generalizations="true"
+ realizations="true" associations="true" dependencies="false" nesting-relationships="true">
+ <class id="1" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.extension.AbstractPropertyDescriptorAdvisor" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/extension/AbstractPropertyDescriptorAdvisor.java"
+ binary="false">
+ <position x="209" y="344" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="4" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.model.property.BaseNodeGroupPropertyAdvisor" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/model/property/BaseNodeGroupPropertyAdvisor.java"
+ binary="false">
+ <position x="332" y="487" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="5" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.model.property.BaseNodePropertyAdvisor" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/model/property/BaseNodePropertyAdvisor.java"
+ binary="false">
+ <position x="108" y="483" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="8" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.model.property.ModelPropertySource" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/model/property/ModelPropertySource.java"
+ binary="false">
+ <position x="213" y="153" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <interface id="10" corner="BOTTOM_RIGHT" language="java" name="org.eclipse.ui.views.properties.IPropertySource"
+ project="de.dhbw.horb.ksm.core"
+ file="/mnt/btrfs/stuff/eclipse/plugins/org.eclipse.ui.views_3.5.1.M20110202-0800.jar" binary="true">
+ <position x="214" y="10" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="false" package="false" protected="false" private="false"/>
+ <operations public="false" package="false" protected="false" private="false"/>
+ </display>
+ </interface>
+ <generalization>
+ <end type="SOURCE" nodeId="5"/>
+ <end type="TARGET" nodeId="1"/>
+ </generalization>
+ <dependency>
+ <end type="SOURCE" nodeId="8"/>
+ <end type="TARGET" nodeId="1"/>
+ </dependency>
+ <generalization>
+ <end type="SOURCE" nodeId="4"/>
+ <end type="TARGET" nodeId="1"/>
+ </generalization>
+ <realization>
+ <end type="SOURCE" nodeId="8"/>
+ <end type="TARGET" nodeId="10"/>
+ </realization>
+ <classifier-display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </classifier-display>
+ <association-display labels="true" multiplicity="true"/>
+</class-diagram> \ No newline at end of file
diff --git a/images/icons/ksm-connection-new.png b/images/icons/ksm-connection-new.png
new file mode 100644
index 0000000..14ab901
--- /dev/null
+++ b/images/icons/ksm-connection-new.png
Binary files differ
diff --git a/images/icons/ksm-modell.png b/images/icons/ksm-modell.png
new file mode 100644
index 0000000..78e9d96
--- /dev/null
+++ b/images/icons/ksm-modell.png
Binary files differ
diff --git a/images/icons/ksm-node-delete.png b/images/icons/ksm-node-delete.png
new file mode 100644
index 0000000..2476289
--- /dev/null
+++ b/images/icons/ksm-node-delete.png
Binary files differ
diff --git a/images/icons/ksm-node-new.png b/images/icons/ksm-node-new.png
new file mode 100644
index 0000000..f4097e7
--- /dev/null
+++ b/images/icons/ksm-node-new.png
Binary files differ
diff --git a/images/icons/ksm-node-property-add.png b/images/icons/ksm-node-property-add.png
new file mode 100644
index 0000000..114ad70
--- /dev/null
+++ b/images/icons/ksm-node-property-add.png
Binary files differ
diff --git a/images/icons/ksm-node-property-delete.png b/images/icons/ksm-node-property-delete.png
new file mode 100644
index 0000000..407a679
--- /dev/null
+++ b/images/icons/ksm-node-property-delete.png
Binary files differ
diff --git a/images/ksm-gui-prototype.ep b/images/ksm-gui-prototype.ep
new file mode 100644
index 0000000..031fe3e
--- /dev/null
+++ b/images/ksm-gui-prototype.ep
@@ -0,0 +1,167 @@
+<?xml version="1.0"?>
+<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">ksm-gui-prototype</Property><Property name="id">1287070596437_35</Property><Property name="width">1038</Property><Property name="height">663</Property><Property name="dimBackground">false</Property><Property name="backgroundColor">#FFFFFFFF</Property><Property name="transparentBackground">true</Property><Property name="background">transparent</Property></Properties><Content><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.GTK.Widgets:Window" id="1c83d04ceceb47d3adc3f0717278325c" transform="matrix(1, 0, 0, 1, 4, 5)"><p:metadata><p:property name="box"><![CDATA[1025,650]]></p:property><p:property name="headerHeight"><![CDATA[0,78]]></p:property><p:property name="titleText"><![CDATA[KSM RCP]]></p:property><p:property name="textColor"><![CDATA[#FFFFFFFF]]></p:property><p:property name="textFont"><![CDATA[Liberation Sans|bold|normal|13px|none]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property><p:property name="headerColor"><![CDATA[#E6E3FFFF]]></p:property><p:property name="withShadow"><![CDATA[true]]></p:property></p:metadata>
+
+ <defs>
+ <linearGradient x1="0%" y1="0%" x2="100%" y2="0%" p:name="linearFill" id="9a61b613f56041f293077e3388b809e3">
+ <stop style="stop-color: rgb(22, 92, 128); stop-opacity: 1;" offset="0" p:name="stop1" id="15530b4ffc0f4c92a0c1ec29137fec25"/>
+ <stop style="stop-color: rgb(10, 122, 180); stop-opacity: 1;" offset="0.5" p:name="stop2" id="30ebb2dbcd6e483f8781b54b7a677850"/>
+ <stop style="stop-color: rgb(22, 92, 128); stop-opacity: 1;" offset="1" p:name="stop3" id="091c63f980c147f1a7912ff09b5d71ae"/>
+ </linearGradient>
+ </defs>
+ <rect width="1025" height="650" rx="0" ry="0" x="3" y="3" style="fill: rgb(0, 0, 0); fill-opacity: 0.2; stroke: none; visibility: visible;" p:name="shadowBox" id="6f538ecc282a4ce080cbf59700e314fa"/>
+ <rect width="1024" height="649" rx="0" ry="0" x="0.5" y="0.5" style="fill: none; stroke: rgb(0, 84, 129); stroke-width: 1; stroke-linejoin: round;" p:name="outBorder1" id="140e1e8a76994b95ae7dc0e11b17aa1d"/>
+ <rect width="1022" height="647" rx="0" ry="0" x="1.5" y="1.5" style="fill: none; stroke: rgb(24, 176, 255); stroke-width: 1; stroke-linejoin: round;" p:name="outBorder2" id="6ae41560fd224333b4f2c1042c0f2746"/>
+ <rect width="1021" height="27" rx="0" ry="0" x="2" y="2" style="fill: url(#9a61b613f56041f293077e3388b809e3) rgb(0, 0, 0); stroke: none;" p:name="titleBg" id="07bda51712c24077ae568d4588775ef1"/>
+ <rect width="1020" height="618" rx="0" ry="0" x="2.5" y="29.5" style="fill: rgb(237, 233, 227); stroke: rgb(0, 113, 172); stroke-width: 1; stroke-linejoin: round;" p:name="contentBg" id="81b477a67adb48fba7974f1c120b6b96"/>
+ <text x="485" y="20" style="font-size: 13px; font-style: normal; font-weight: bold; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: Liberation Sans; fill-opacity: 0.333333; text-decoration: none;" xml:space="preserve" p:name="shadowText" id="df8eb345be9941068026508faa8f5606">KSM RCP</text><path id="df8eb345be9941068026508faa8f5606_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ <text x="484" y="19" style="font-size: 13px; font-style: normal; font-weight: bold; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(255, 255, 255); font-family: Liberation Sans; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="34c85b2064ae4d1a8cb5c6f6b16e4636">KSM RCP</text><path id="34c85b2064ae4d1a8cb5c6f6b16e4636_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ <rect width="1019" height="48" rx="0" ry="0" x="3" y="30" style="fill: rgb(230, 227, 255); stroke: none; fill-opacity: 1;" p:name="headerBar" id="122eead32a8446a0b3061e6304462fcc"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.WindowsXP.Widgets:Groupbox" id="d723597712194079b0aa6963e24434fa" transform="matrix(1, 0, 0, 1, 299, 72)"><p:metadata><p:property name="box"><![CDATA[712,396]]></p:property><p:property name="label"><![CDATA[Editor]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Tahoma|normal|normal|11px|none]]></p:property></p:metadata>
+ <path d="M 50,0.5 L 707.5,0.5 C 710,0.5 711.5,2.2946114 711.5,4.5 L 711.5,391.5 C 711.5,394 710,395.5 707.5,395.5 L 4.5,395.5 C 2.284,395.5 0.5,394 0.5,391.5 L 0.5,4.5106114 C 0.5,2.2946114 2.284,0.51061056 4.5,0.51061056 L 5.5,0.51061056" style="overflow: visible; marker: none; color: rgb(0, 0, 0); fill: rgb(255, 255, 255); fill-opacity: 0; fill-rule: nonzero; stroke: rgb(172, 168, 153); stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1; visibility: visible; display: inline;" p:name="rect" id="f75d7f416d114ec8827b1f1e177a1251"/>
+ <text y="5" x="10" style="font-size: 11px; font-style: normal; font-weight: normal; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: Tahoma; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="bde8782581174d5885fae90a714bff3a">Editor</text><path id="bde8782581174d5885fae90a714bff3a_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RectWithGradient" id="dfe08c4e93334197b1649664372b7413" transform="matrix(1, 0, 0, 1, 310.2, 125)"><p:metadata><p:property name="box"><![CDATA[690,334]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,20.875]]></p:property><p:property name="startFillColor"><![CDATA[#A3D3FFFF]]></p:property><p:property name="endFillColor"><![CDATA[#F0FCFFFF]]></p:property><p:property name="strokeColor"><![CDATA[#000000FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[<body id="RichTextEditor" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal;"/>]]></p:property><p:property name="textFont"><![CDATA[Arial|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" p:name="linearFill" id="80cf4a48e3664dec817dcd58163f02d7">
+ <stop style="stop-color: rgb(163, 211, 255); stop-opacity: 1;" offset="0" p:name="stop1" id="ff22dcc01a7044998161102aa745d5ec"/>
+ <stop style="stop-color: rgb(240, 252, 255); stop-opacity: 1;" offset="1" p:name="stop2" id="f83c897ce35c4a168458f7e07ce39e00"/>
+ </linearGradient>
+ <rect width="690" height="334" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: url(#80cf4a48e3664dec817dcd58163f02d7) rgb(0, 0, 0); stroke: rgb(0, 0, 0); stroke-opacity: 1;" p:name="rrRect" id="1dabfae788314e309fa3f98c44698c1b" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="298d9a039126414aa49fc3587ca5e162">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#1dabfae788314e309fa3f98c44698c1b" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#298d9a039126414aa49fc3587ca5e162)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="c571ae05b0ef4ee29bf13bb342bd09f8"/>
+ <use xlink:href="#1dabfae788314e309fa3f98c44698c1b" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="20.875" y="166" width="648.25" height="2" p:name="text" id="0287c5c82c9a4ef7b862ca8863aa569f" style="font-family: Arial; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml"><body id="RichTextEditor" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal;"/></div></foreignObject><path id="0287c5c82c9a4ef7b862ca8863aa569f_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="be0405e158dc4c8b9c35fb7e62068a9c" transform="matrix(1, 0, 0, 1, 642, 186)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Node]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="4541901e458e43ca8537faf8654c2660" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="d19d75a8cc5f46ba9a4d5132e50e6678">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#4541901e458e43ca8537faf8654c2660" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#d19d75a8cc5f46ba9a4d5132e50e6678)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="ce82ba7c26c24180a565bbeaa079314b"/>
+ <use xlink:href="#4541901e458e43ca8537faf8654c2660" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="5a2c4b041aa44b2386a58db789870f56" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Node</div></foreignObject><path id="5a2c4b041aa44b2386a58db789870f56_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="16c666cc73c14eb7bed1793c7163a857" transform="matrix(1, 0, 0, 1, 367, 313)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Node]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="1b98330fa2b84ff1806998ddd29bbb12" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="f88ba5127d144756ab65b5770ebab29f">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#1b98330fa2b84ff1806998ddd29bbb12" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#f88ba5127d144756ab65b5770ebab29f)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="cbfcf985211b4b329bf6646390402a28"/>
+ <use xlink:href="#1b98330fa2b84ff1806998ddd29bbb12" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="0b0db1f46280477e87379a2e66ece0fe" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Node</div></foreignObject><path id="329eb8f3a7534214b0abf79c03cde385" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="579ef420baaa450bab1235fb96c7dbe0" transform="matrix(1, 0, 0, 1, 379.269, 204.453)"><p:metadata><p:property name="a"><![CDATA[112,109]]></p:property><p:property name="b"><![CDATA[262,18]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="06cfab0f166a4bbb83b1c25be067c3af" d="M 112 109 L 262 18 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="11e47738784949cc827ba5c572bd52d9" transform="translate(0)" d="M 112 109 L 262 18 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Annotation:Bullet" id="f06ccb81898c40fd9ace76f812e06b21" transform="matrix(1, 0, 0, 1, 299.24, 115.96)"><p:metadata><p:property name="box"><![CDATA[30,30]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="fillColor"><![CDATA[#21D9EDFF]]></p:property><p:property name="strokeColor"><![CDATA[#7F7F7F00]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[1]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#FFFFFFFF]]></p:property></p:metadata>
+
+ <defs>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="imageShading" id="77a4d551bf7c4b4d8b2253e2240087a9">
+ <feGaussianBlur stdDeviation="1.3325" in="SourceAlpha"/>
+ </filter>
+ <g p:name="container" id="d373930a370e475f82bdcf4c3b5b7fe0">
+ <ellipse p:name="ellipse" id="793608d537ca44189e746447cab09f80" cx="15" cy="15" rx="15" ry="15" style="fill: rgb(33, 217, 237); fill-opacity: 1; stroke: rgb(127, 127, 127); stroke-opacity: 0; stroke-width: 2;"/>
+ </g>
+ </defs>
+ <use xlink:href="#d373930a370e475f82bdcf4c3b5b7fe0" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(1, 1)" p:filter="url(#77a4d551bf7c4b4d8b2253e2240087a9)" style="opacity: 0.6; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="46ff994a619d48cd917a56078f841a29"/>
+ <use xlink:href="#d373930a370e475f82bdcf4c3b5b7fe0" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="0" y="8" width="30" height="15" p:name="text" id="9fa98ca45c3a41ae8d5c2b269eb7e486" style="fill: rgb(255, 255, 255); fill-opacity: 1; color: rgb(255, 255, 255); opacity: 1; font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: bold; font-style: normal; text-decoration: none; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">1</div></foreignObject><path id="9fa98ca45c3a41ae8d5c2b269eb7e486_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.WindowsXP.Widgets:Groupbox" id="837f06991bff4e98ab2c0e7bb32ad50f" transform="matrix(1, 0, 0, 1, 20, 73)"><p:metadata><p:property name="box"><![CDATA[256,447]]></p:property><p:property name="label"><![CDATA[Node Properties]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Tahoma|normal|normal|11px|none]]></p:property></p:metadata>
+ <path d="M 104,0.5 L 251.5,0.5 C 254,0.5 255.5,2.2946114 255.5,4.5 L 255.5,442.5 C 255.5,445 254,446.5 251.5,446.5 L 4.5,446.5 C 2.284,446.5 0.5,445 0.5,442.5 L 0.5,4.5106114 C 0.5,2.2946114 2.284,0.51061056 4.5,0.51061056 L 5.5,0.51061056" style="overflow: visible; marker: none; color: rgb(0, 0, 0); fill: rgb(255, 255, 255); fill-opacity: 0; fill-rule: nonzero; stroke: rgb(172, 168, 153); stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1; visibility: visible; display: inline;" p:name="rect" id="bff111e026d34643970741120419b3a0"/>
+ <text y="4" x="10" style="font-size: 11px; font-style: normal; font-weight: normal; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: Tahoma; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="377a6a7629c44a589963f398a83e874d">Node Properties</text><path id="377a6a7629c44a589963f398a83e874d_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:PlainText" id="3fdae2bc0ab8492e8f65586a0e8c4052" transform="matrix(0.866025, -0.5, 0.5, 0.866025, 520.897, 278.617)"><p:metadata><p:property name="disabled"><![CDATA[false]]></p:property><p:property name="label"><![CDATA[Connection]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property></p:metadata>
+ <text y="11" x="0" style="font-size: 13px; font-style: normal; font-weight: normal; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="b0aae7984b3d4aa5818d37838708337f">Connection</text><path id="b0aae7984b3d4aa5818d37838708337f_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.GTK.Widgets:Button" id="7eb20506eb174b1cbd26f3018d367b00" transform="matrix(1, 0, 0, 1, 320, 82)"><p:metadata><p:property name="box"><![CDATA[75,24]]></p:property><p:property name="buttonText"><![CDATA[Add Node]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Liberation Sans|normal|normal|12px|none]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property><p:property name="disabled"><![CDATA[false]]></p:property></p:metadata>
+
+ <defs>
+ <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" p:name="linearFill" id="aefac1a3f86c4a89a5af3435ce806aaf">
+ <stop style="stop-color: rgb(253, 253, 252); stop-opacity: 1;" offset="0" p:name="stop1" id="478bf559a2a44e208f0f1f90e35a6d23"/>
+ <stop style="stop-color: rgb(235, 235, 235); stop-opacity: 1;" offset="0.7" p:name="stop2" id="edc80c2c923942fc97c74d60d49ec9d5"/>
+ <stop style="stop-color: rgb(252, 252, 252); stop-opacity: 1;" offset="1" p:name="stop3" id="b9cde99a2ca5488faca500bccfd62585"/>
+ </linearGradient>
+ </defs>
+ <rect width="74" height="23" rx="3" ry="3" x="0.5" y="0.5" style="fill: url(#aefac1a3f86c4a89a5af3435ce806aaf) rgb(0, 0, 0); stroke: rgb(161, 150, 133); stroke-width: 1; stroke-linejoin: round; stroke-opacity: 1;" p:name="rect" id="7670d5eda5594fcf822d2786d22b2f58"/>
+ <text x="11" y="17" style="font-size: 12px; font-style: normal; font-weight: normal; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: Liberation Sans; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="752521cd29ed4606b0573c8a25225fd5">Add Node</text><path id="752521cd29ed4606b0573c8a25225fd5_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Annotation:Bullet" id="eff073f1d6e143e19b7de51e3096cef6" transform="matrix(1, 0, 0, 1, 118, 172)"><p:metadata><p:property name="box"><![CDATA[30,30]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="fillColor"><![CDATA[#21D9EDFF]]></p:property><p:property name="strokeColor"><![CDATA[#7F7F7F00]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[2]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#FFFFFFFF]]></p:property></p:metadata>
+
+ <defs>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="imageShading" id="407ddf38081b418bae41b4f715312bbf">
+ <feGaussianBlur stdDeviation="1.3325" in="SourceAlpha"/>
+ </filter>
+ <g p:name="container" id="c2eacd74a96f4e149d28056fc0b9fd1e">
+ <ellipse p:name="ellipse" id="a9f47f697f41415a8e71e4ab85c004ed" cx="15" cy="15" rx="15" ry="15" style="fill: rgb(33, 217, 237); fill-opacity: 1; stroke: rgb(127, 127, 127); stroke-opacity: 0; stroke-width: 2;"/>
+ </g>
+ </defs>
+ <use xlink:href="#c2eacd74a96f4e149d28056fc0b9fd1e" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(1, 1)" p:filter="url(#407ddf38081b418bae41b4f715312bbf)" style="opacity: 0.6; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="c5334e5d25fc402b80dc198a15c9a1a4"/>
+ <use xlink:href="#c2eacd74a96f4e149d28056fc0b9fd1e" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="0" y="8" width="30" height="15" p:name="text" id="dd83e3310d9c4845a79c65ebb70259a1" style="fill: rgb(255, 255, 255); fill-opacity: 1; color: rgb(255, 255, 255); opacity: 1; font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: bold; font-style: normal; text-decoration: none; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">2</div></foreignObject><path id="dd83e3310d9c4845a79c65ebb70259a1_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="3a6082afd43d4593a1d80d543887bb4c" transform="matrix(1, 0, 0, 1, 213, 108)"><p:metadata><p:property name="a"><![CDATA[80,-40]]></p:property><p:property name="b"><![CDATA[80,545]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="0ee1bc80740e488594e42cf91407977a" d="M 80 -40 L 80 545 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="eb41813920a24b6cbf5a7df2b07bf853" transform="translate(0)" d="M 80 -40 L 80 545 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.BasicWebElements:table" id="ca3109efe83640978d758b74c35a7a33" transform="matrix(1, 0, 0, 1, 36, 94)"><p:metadata><p:property name="box"><![CDATA[230,51]]></p:property><p:property name="useHtmlContent"><![CDATA[false]]></p:property><p:property name="fixedHeaderHeight"><![CDATA[false]]></p:property><p:property name="padding"><![CDATA[0,4]]></p:property><p:property name="headerHeight"><![CDATA[0,20]]></p:property><p:property name="h0"><![CDATA[78,0]]></p:property><p:property name="h1"><![CDATA[92,0]]></p:property><p:property name="h2"><![CDATA[168.66666666666669,0]]></p:property><p:property name="h3"><![CDATA[199.33333333333334,0]]></p:property><p:property name="h4"><![CDATA[207,0]]></p:property><p:property name="h5"><![CDATA[214.66666666666669,0]]></p:property><p:property name="h6"><![CDATA[222.33333333333334,0]]></p:property><p:property name="h7"><![CDATA[222.33333333333334,0]]></p:property><p:property name="h8"><![CDATA[222.33333333333334,0]]></p:property><p:property name="h9"><![CDATA[222.33333333333334,0]]></p:property><p:property name="h10"><![CDATA[222.33333333333334,0]]></p:property><p:property name="h11"><![CDATA[222.33333333333334,0]]></p:property><p:property name="content"><![CDATA[gaga | Column 2
+Bla | Cell Content 1
+blubb | Cell content 2]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textAlign"><![CDATA[0,1]]></p:property><p:property name="customStyle"><![CDATA[]]></p:property><p:property name="textColor"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="fillColor"><![CDATA[#00000000]]></p:property><p:property name="headerTextColor"><![CDATA[#000000FF]]></p:property><p:property name="headerBackground"><![CDATA[#CCCCCCFF]]></p:property><p:property name="strokeColor"><![CDATA[#00000055]]></p:property><p:property name="strokeStyle"><![CDATA[1|]]></p:property></p:metadata>
+
+ <foreignObject x="0" y="0" width="231" height="73" p:name="htmlObject" id="ef1abd81f57d4b139a103f7e9958fb5f">
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; width: 230px; color: rgb(0, 0, 0); opacity: 1; font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none;" p:name="textDiv" id="b9f263c4fb0046a8ae50712b63c6bbe2"><table style="border-collapse: collapse; background-color: transparent; width: 229px; height: 50px; margin-left: 1px; margin-top: 1px;"><thead><tr><th style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; background-color: rgb(204, 204, 204); color: rgb(0, 0, 0); text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 76px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 76px;">gaga </div></th><th style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; background-color: rgb(204, 204, 204); color: rgb(0, 0, 0); text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 150px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 150px;"> Column 2</div></th></tr></thead><tbody><tr><td style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 76px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 76px;">Bla </div></td><td style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 150px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 150px;"> Cell Content 1</div></td></tr><tr><td style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 76px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 76px;">blubb </div></td><td style="border: 1px solid rgba(0, 0, 0, 0.33); padding: 0px; overflow: hidden; text-align: left; vertical-align: middle; min-width: 0px; min-height: 0px; width: 150px;"><div style="padding: 4px; overflow: hidden; min-width: 0px; -moz-box-sizing: border-box; width: 150px;"> Cell content 2</div></td></tr></tbody></table></div><path id="b9f263c4fb0046a8ae50712b63c6bbe2_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ <div xmlns="http://www.w3.org/1999/xhtml" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"/>
+ </foreignObject>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="e7526d0847c44c36bbf4985308b95dfe" transform="matrix(1, 0, 0, 1, 293, 480)"><p:metadata><p:property name="a"><![CDATA[0,0]]></p:property><p:property name="b"><![CDATA[735,0]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="8007a104f73445548676ac81fb2b5ef7" d="M 0 0 L 735 0 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="65782947d02f4da08718b83d3fc62622" transform="translate(0)" d="M 0 0 L 735 0 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.WindowsXP.Widgets:Groupbox" id="d2d696a1142a493b81d8d2d1c6c36744" transform="matrix(1, 0, 0, 1, 310, 502)"><p:metadata><p:property name="box"><![CDATA[697,137]]></p:property><p:property name="label"><![CDATA[Simulation Output]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Tahoma|normal|normal|11px|none]]></p:property></p:metadata>
+ <path d="M 120,0.5 L 692.5,0.5 C 695,0.5 696.5,2.2946114 696.5,4.5 L 696.5,132.5 C 696.5,135 695,136.5 692.5,136.5 L 4.5,136.5 C 2.284,136.5 0.5,135 0.5,132.5 L 0.5,4.5106114 C 0.5,2.2946114 2.284,0.51061056 4.5,0.51061056 L 5.5,0.51061056" style="overflow: visible; marker: none; color: rgb(0, 0, 0); fill: rgb(255, 255, 255); fill-opacity: 0; fill-rule: nonzero; stroke: rgb(172, 168, 153); stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1; visibility: visible; display: inline;" p:name="rect" id="f3e52a928a2f42b4a4e7ff2b69dc0bb0"/>
+ <text y="4" x="10" style="font-size: 11px; font-style: normal; font-weight: normal; text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); font-family: Tahoma; fill-opacity: 1; text-decoration: none;" xml:space="preserve" p:name="text" id="b1fe90de84054e15927fde05c9bdc154">Simulation Output</text><path id="b1fe90de84054e15927fde05c9bdc154_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.WindowsXP.Widgets:MenuItem" id="dcedef5c64e44a939071b8c6af1d29ca" transform="matrix(1, 0, 0, 1, 5, 36)"><p:metadata><p:property name="box"><![CDATA[170,20]]></p:property><p:property name="type"><![CDATA[none]]></p:property><p:property name="hasCascadingMenu"><![CDATA[false]]></p:property><p:property name="disabled"><![CDATA[false]]></p:property><p:property name="selected"><![CDATA[false]]></p:property><p:property name="label"><![CDATA[File]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Tahoma|normal|normal|11px|none]]></p:property></p:metadata>
+ <rect style="fill: rgb(51, 102, 204); fill-opacity: 1; stroke: none; visibility: hidden;" x="3" y="1" p:name="bgRect" id="c4860cf7e85e406b8d50ee2940426bcc" width="164" height="18"/>
+ <text x="20" y="15" style="text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); fill-opacity: 1; font-family: Tahoma; font-size: 11px; font-weight: normal; font-style: normal; text-decoration: none;" xml:space="preserve" p:name="text" id="de3f1cc9cf5f491598d338c4370ef72a">File</text><path id="de3f1cc9cf5f491598d338c4370ef72a_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ <path style="fill: none; stroke-width: 1px; visibility: hidden;" p:name="accelIndicator" id="f715bf573f5a4553b4c3d6936dd08641"/>
+ <path style="fill: none; fill-rule: evenodd; stroke: rgb(0, 0, 0); stroke-width: 2; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1; visibility: hidden;" d="M 2.9699794,5.3993084 L 5.5632114,8.7682884 L 10.376336,3.1939584" transform="translate(4, 3.5)" p:name="checkedPath" id="ac8b6dba43344c898a23406791bbe28e"/>
+ <circle cx="10" cy="10" r="3" stroke="none" fill="#000000" p:name="bullet" id="72205badfa984422a8e43b7ecbcc75b0" style="visibility: hidden; fill: rgb(0, 0, 0); fill-opacity: 1;"/>
+ <path style="fill: rgb(0, 0, 0); stroke: none; visibility: hidden; fill-opacity: 1;" d="M 0,0 L 4,4 L 0,8 z" p:name="submenuMark" id="c244d325fbd94874969043d213c825b5" transform="translate(156, 6.5)"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.WindowsXP.Widgets:MenuItem" id="558a9547e5bd4cdfae6ab9b239f963aa" transform="matrix(1, 0, 0, 1, 91, 36)"><p:metadata><p:property name="box"><![CDATA[170,20]]></p:property><p:property name="type"><![CDATA[none]]></p:property><p:property name="hasCascadingMenu"><![CDATA[false]]></p:property><p:property name="disabled"><![CDATA[false]]></p:property><p:property name="selected"><![CDATA[false]]></p:property><p:property name="label"><![CDATA[...]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA[Tahoma|normal|normal|11px|none]]></p:property></p:metadata>
+ <rect style="fill: rgb(51, 102, 204); fill-opacity: 1; stroke: none; visibility: hidden;" x="3" y="1" p:name="bgRect" id="5e60831aa8cc436da08eabf6ef0f7b80" width="164" height="18"/>
+ <text x="20" y="11" style="text-align: left; text-anchor: start; dominant-baseline: auto; fill: rgb(0, 0, 0); fill-opacity: 1; font-family: Tahoma; font-size: 11px; font-weight: normal; font-style: normal; text-decoration: none;" xml:space="preserve" p:name="text" id="4bf8164368ff405caad7e0c8bdb72f0b">...</text><path id="4bf8164368ff405caad7e0c8bdb72f0b_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="5890b9a158eb4b119263ed9747c4f6db" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ <path style="fill: none; stroke-width: 1px; visibility: hidden;" p:name="accelIndicator" id="7725f192ef824060836e2af731adf207"/>
+ <path style="fill: none; fill-rule: evenodd; stroke: rgb(0, 0, 0); stroke-width: 2; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1; visibility: hidden;" d="M 2.9699794,5.3993084 L 5.5632114,8.7682884 L 10.376336,3.1939584" transform="translate(4, 3.5)" p:name="checkedPath" id="78ab1edb7d424f5caebaab59e2fb2f96"/>
+ <circle cx="10" cy="10" r="3" stroke="none" fill="#000000" p:name="bullet" id="fc7e0564907e44f4bbd1389e8b2a87e3" style="visibility: hidden; fill: rgb(0, 0, 0); fill-opacity: 1;"/>
+ <path style="fill: rgb(0, 0, 0); stroke: none; visibility: hidden; fill-opacity: 1;" d="M 0,0 L 4,4 L 0,8 z" p:name="submenuMark" id="cee434517f40442f9fad148fa52148ec" transform="translate(156, 6.5)"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="86a83f0d39034dadbe690e9740af928f" transform="matrix(1, 0, 0, 1, 8, 56)"><p:metadata><p:property name="a"><![CDATA[0,0]]></p:property><p:property name="b"><![CDATA[1020,0]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="a4e9d6ff10b4488cbef46be576edae17" d="M 0 0 L 1020 0 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="c75c10d7932143e58506b53b7536228b" transform="translate(0)" d="M 0 0 L 1020 0 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Annotation:Bullet" id="dd27294be7474eaf811d8acd14a09aa6" transform="matrix(1, 0, 0, 1, 342.24, 526.96)"><p:metadata><p:property name="box"><![CDATA[30,30]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="fillColor"><![CDATA[#21D9EDFF]]></p:property><p:property name="strokeColor"><![CDATA[#7F7F7F00]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[3]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#FFFFFFFF]]></p:property></p:metadata>
+
+ <defs>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="imageShading" id="d7e4b399ad034943935397929df50de6">
+ <feGaussianBlur stdDeviation="1.3325" in="SourceAlpha"/>
+ </filter>
+ <g p:name="container" id="98ce5fb7b0224995a7a22b4340cd10ae">
+ <ellipse p:name="ellipse" id="784aa6cc5ff14cc7bb9bd6623b0e2ed3" cx="15" cy="15" rx="15" ry="15" style="fill: rgb(33, 217, 237); fill-opacity: 1; stroke: rgb(127, 127, 127); stroke-opacity: 0; stroke-width: 2;"/>
+ </g>
+ </defs>
+ <use xlink:href="#98ce5fb7b0224995a7a22b4340cd10ae" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(1, 1)" p:filter="url(#d7e4b399ad034943935397929df50de6)" style="opacity: 0.6; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="1629f3e0024e4fb7a0ed3284d6f15ba2"/>
+ <use xlink:href="#98ce5fb7b0224995a7a22b4340cd10ae" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="0" y="8" width="30" height="15" p:name="text" id="2100a86e831b4e7fa41d67023ea55093" style="fill: rgb(255, 255, 255); fill-opacity: 1; color: rgb(255, 255, 255); opacity: 1; font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: bold; font-style: normal; text-decoration: none; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">3</div></foreignObject><path id="2100a86e831b4e7fa41d67023ea55093_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="d7ff5cc43558426aab0706532af0c707" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Annotation:Bullet" id="19d3d52743594f30b8a7a877673dfdaf" transform="matrix(1, 0, 0, 1, 48.24, 14.96)"><p:metadata><p:property name="box"><![CDATA[30,30]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="fillColor"><![CDATA[#21D9EDFF]]></p:property><p:property name="strokeColor"><![CDATA[#7F7F7F00]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[4]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#FFFFFFFF]]></p:property></p:metadata>
+
+ <defs>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="imageShading" id="98e6e13873c84203ae1b69a0cbaea65f">
+ <feGaussianBlur stdDeviation="1.3325" in="SourceAlpha"/>
+ </filter>
+ <g p:name="container" id="c7cd5d31b5044c3a9139b291872e9c13">
+ <ellipse p:name="ellipse" id="a9418daaa3d14c7d8ddb352975bdd708" cx="15" cy="15" rx="15" ry="15" style="fill: rgb(33, 217, 237); fill-opacity: 1; stroke: rgb(127, 127, 127); stroke-opacity: 0; stroke-width: 2;"/>
+ </g>
+ </defs>
+ <use xlink:href="#c7cd5d31b5044c3a9139b291872e9c13" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(1, 1)" p:filter="url(#98e6e13873c84203ae1b69a0cbaea65f)" style="opacity: 0.6; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="7b2361e831f540c4a731b5727389d577"/>
+ <use xlink:href="#c7cd5d31b5044c3a9139b291872e9c13" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="0" y="8" width="30" height="15" p:name="text" id="9ae5e1afa95e4391abe0a05e410721f8" style="fill: rgb(255, 255, 255); fill-opacity: 1; color: rgb(255, 255, 255); opacity: 1; font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: bold; font-style: normal; text-decoration: none; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">4</div></foreignObject><path id="9ae5e1afa95e4391abe0a05e410721f8_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="7a82a08f07e849909c92a2f09551a85c" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="bca20c8acf5e480daa1b06bf4f01c0a3" transform="matrix(1, 0, 0, 1, 293, 116)"><p:metadata><p:property name="a"><![CDATA[0,0]]></p:property><p:property name="b"><![CDATA[735,0]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|1,3]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="4182ae7736464869889a5bfb6d777e69" d="M 0 0 L 735 0 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 1, 3;" p:name="path" id="ac103744b81f48129897e4c86934ff97" transform="translate(0)" d="M 0 0 L 735 0 z"/>
+ </g></Content></Page></Pages></Document> \ No newline at end of file
diff --git a/images/ksm-gui-prototype.png b/images/ksm-gui-prototype.png
new file mode 100644
index 0000000..1bd451f
--- /dev/null
+++ b/images/ksm-gui-prototype.png
Binary files differ
diff --git a/images/ksm-outline-databinding.png b/images/ksm-outline-databinding.png
new file mode 100644
index 0000000..7d448c6
--- /dev/null
+++ b/images/ksm-outline-databinding.png
Binary files differ
diff --git a/images/ksm-outline-databinding.screen b/images/ksm-outline-databinding.screen
new file mode 100644
index 0000000..80c6d53
--- /dev/null
+++ b/images/ksm-outline-databinding.screen
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model:Screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://wireframesketcher.com/1.0/model.ecore">
+ <widgets xsi:type="model:Tree" x="314" y="53" width="201" height="194" text="KSM Knoten 1&#xA;- KSM Knoten 2&#xA;KSM Knoten 2&#xA;-KSM Knoten 1" measuredWidth="201" measuredHeight="194" verticalScrollbar="true" selection="0">
+ <items x="0" y="5" width="184" height="23" text="KSM Knoten 1"/>
+ <items x="0" y="28" width="184" height="23" text="- KSM Knoten 2"/>
+ <items x="0" y="51" width="184" height="23" text="KSM Knoten 2"/>
+ <items x="0" y="74" width="184" height="23" text="-KSM Knoten 1"/>
+ </widgets>
+ <widgets xsi:type="model:Panel" x="23" y="52" width="260" height="406" measuredWidth="260" measuredHeight="406" verticalScrollbar="true"/>
+ <widgets xsi:type="model:Tabs" x="16" y="24" text="Sample KSM Model.ksm" measuredWidth="176" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="174" height="30" text="Sample KSM Model.ksm"/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="314" y="18" text="Outline" measuredWidth="67" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="65" height="30" text="Outline"/>
+ </widgets>
+ <widgets xsi:type="model:VLine" x="298" y="10" height="445" measuredWidth="6" measuredHeight="445"/>
+ <widgets xsi:type="model:ButtonBar" x="314" y="277" text="Add,Delete" measuredWidth="109" measuredHeight="30" selection="">
+ <font/>
+ <items x="0" y="0" width="46" height="30" text="Add"/>
+ <items x="46" y="0" width="63" height="30" text="Delete"/>
+ </widgets>
+ <widgets xsi:type="model:Table" x="314" y="319" width="201" height="120" text="Name,Value&#xA;Property 1,Value 1&#xA;Property 2,Value 2&#xA;Property 3,Value 3" measuredWidth="201" measuredHeight="120" verticalScrollbar="true">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Rectangle" x="56" y="234" width="136" height="49" text="KSM Knoten 1" measuredWidth="136" measuredHeight="49" border="dashed-rounded">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Arrow" x="117" y="145" width="83" height="90" measuredWidth="83" measuredHeight="90" left="false" right="true" direction="bottom"/>
+ <widgets xsi:type="model:Rectangle" x="125" y="97" width="136" height="49" text="KSM Knoten 2" measuredWidth="136" measuredHeight="49">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Arrow" x="190" y="71" width="138" height="164" measuredWidth="138" measuredHeight="164" foreground="#ff0000" right="true" direction="bottom"/>
+ <widgets xsi:type="model:Arrow" x="260" y="103" width="67" height="24" measuredWidth="67" measuredHeight="24" foreground="#ff0000" right="true"/>
+ <widgets xsi:type="model:Arrow" x="440" y="62" width="105" height="290" measuredWidth="105" measuredHeight="290" foreground="#0000ff" left="false" right="true"/>
+ <widgets xsi:type="model:Label" x="191" y="12" text="Selektions\nSynchronisation" measuredWidth="107" measuredHeight="42" foreground="#ff0000">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="392" y="176" text="Master-Detail\nBeziehung" measuredWidth="90" measuredHeight="42" foreground="#0000ff">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:CurlyBrace" x="514" y="304" width="23" height="149" measuredWidth="23" measuredHeight="149">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Circle" x="432" y="61" width="20" height="19" measuredWidth="20" measuredHeight="19" background="#0000ff">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:HSplitter" x="314" y="253" width="201" measuredWidth="201" measuredHeight="11"/>
+ <hRuler/>
+ <vRuler/>
+ <font/>
+</model:Screen>
diff --git a/images/ksm-outline.png b/images/ksm-outline.png
new file mode 100644
index 0000000..c0436ba
--- /dev/null
+++ b/images/ksm-outline.png
Binary files differ
diff --git a/images/ksm-prototype-mainWindow.png b/images/ksm-prototype-mainWindow.png
new file mode 100644
index 0000000..d90be2b
--- /dev/null
+++ b/images/ksm-prototype-mainWindow.png
Binary files differ
diff --git a/images/ksm-prototype-mainWindow.screen b/images/ksm-prototype-mainWindow.screen
new file mode 100644
index 0000000..e7d70c7
--- /dev/null
+++ b/images/ksm-prototype-mainWindow.screen
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model:Screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://wireframesketcher.com/1.0/model.ecore">
+ <widgets xsi:type="model:Window" x="-2" y="24" width="1035" height="673" text="KSM RCP" measuredWidth="1035" measuredHeight="673"/>
+ <widgets xsi:type="model:Menu" x="-2" y="43" text="File,Edit,Perspective,Help" measuredWidth="197" measuredHeight="30">
+ <items x="5" y="0" width="30" height="30" text="File"/>
+ <items x="35" y="0" width="34" height="30" text="Edit"/>
+ <items x="69" y="0" width="84" height="30" text="Perspective"/>
+ <items x="153" y="0" width="39" height="30" text="Help"/>
+ </widgets>
+ <widgets xsi:type="model:Icon" x="8" y="76" measuredWidth="16" measuredHeight="16" icon="add (small)"/>
+ <widgets xsi:type="model:Icon" x="34" y="76" measuredWidth="16" measuredHeight="16" icon="save (small)"/>
+ <widgets xsi:type="model:VLine" x="56" y="71" height="26" measuredWidth="6" measuredHeight="26"/>
+ <widgets xsi:type="model:Icon" x="64" y="76" measuredWidth="16" measuredHeight="16" icon="submenu (small)"/>
+ <widgets xsi:type="model:Tree" x="17" y="161" width="268" height="520" text="KSM Project&#xA;-Sample KSM Model.ksm&#xA;Other KSM Project" measuredWidth="268" measuredHeight="520" verticalScrollbar="true" selection="1">
+ <items x="0" y="5" width="251" height="23" text="KSM Project"/>
+ <items x="0" y="28" width="251" height="23" text="-Sample KSM Model.ksm"/>
+ <items x="0" y="51" width="251" height="23" text="Other KSM Project"/>
+ </widgets>
+ <widgets xsi:type="model:Tree" x="824" y="138" width="201" height="194" text="KSM Knoten 1&#xA;- KSM Knoten 2&#xA;KSM Knoten 2&#xA;-KSM Knoten 1" measuredWidth="201" measuredHeight="194" verticalScrollbar="true">
+ <items x="0" y="5" width="184" height="23" text="KSM Knoten 1"/>
+ <items x="0" y="28" width="184" height="23" text="- KSM Knoten 2"/>
+ <items x="0" y="51" width="184" height="23" text="KSM Knoten 2"/>
+ <items x="0" y="74" width="184" height="23" text="-KSM Knoten 1"/>
+ </widgets>
+ <widgets xsi:type="model:Panel" x="432" y="137" width="361" height="406" measuredWidth="361" measuredHeight="406" verticalScrollbar="true"/>
+ <widgets xsi:type="model:Tabs" x="294" y="108" text="Sample KSM Model.ksm" measuredWidth="176" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="174" height="30" text="Sample KSM Model.ksm"/>
+ </widgets>
+ <widgets xsi:type="model:Tabs" x="291" y="565" text="Simulation Output, Other Stuff" measuredWidth="228" measuredHeight="30" selection="4">
+ <items x="1" y="0" width="136" height="30" text="Simulation Output"/>
+ <items x="137" y="0" width="90" height="30" text="Other Stuff"/>
+ </widgets>
+ <widgets xsi:type="model:HLine" x="291" y="552" width="742" measuredWidth="742" measuredHeight="6"/>
+ <widgets xsi:type="model:Tabs" x="17" y="108" text="Project Explorer" measuredWidth="122" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="120" height="30" text="Project Explorer"/>
+ </widgets>
+ <widgets xsi:type="model:VLine" x="288" y="103" height="578" measuredWidth="6" measuredHeight="578"/>
+ <widgets xsi:type="model:Tabs" x="824" y="103" text="Outline" measuredWidth="67" measuredHeight="30" selection="0">
+ <items x="1" y="0" width="65" height="30" text="Outline"/>
+ </widgets>
+ <widgets xsi:type="model:VLine" x="808" y="95" height="445" measuredWidth="6" measuredHeight="445"/>
+ <widgets xsi:type="model:Tree" x="294" y="161" width="123" height="384" text="Node&#xA;Connection" measuredWidth="123" measuredHeight="384" verticalScrollbar="true">
+ <items x="0" y="5" width="106" height="23" text="Node"/>
+ <items x="0" y="28" width="106" height="23" text="Connection"/>
+ </widgets>
+ <widgets xsi:type="model:Label" x="294" y="143" text="Palette" measuredWidth="49" measuredHeight="25">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:ButtonBar" x="824" y="362" text="Add,Delete" measuredWidth="109" measuredHeight="30" selection="">
+ <font/>
+ <items x="0" y="0" width="46" height="30" text="Add"/>
+ <items x="46" y="0" width="63" height="30" text="Delete"/>
+ </widgets>
+ <widgets xsi:type="model:HLine" x="824" y="341" width="201" measuredWidth="201" measuredHeight="6"/>
+ <widgets xsi:type="model:Table" x="824" y="404" width="201" height="120" text="Name,Value&#xA;Property 1,Value 1&#xA;Property 2,Value 2&#xA;Property 3,Value 3" measuredWidth="201" measuredHeight="120" verticalScrollbar="true">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Callout" x="448" y="95" text="1" measuredWidth="27" measuredHeight="27" background="#00adef">
+ <font bold="true"/>
+ </widgets>
+ <widgets xsi:type="model:Callout" x="952" y="363" text="2" measuredWidth="27" measuredHeight="27" background="#00adef">
+ <font bold="true"/>
+ </widgets>
+ <widgets xsi:type="model:Rectangle" x="442" y="200" width="136" height="49" text="KSM Knoten 1" measuredWidth="136" measuredHeight="49">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Rectangle" x="624" y="200" width="136" height="49" text="KSM Knoten 2" measuredWidth="136" measuredHeight="49">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:HLine" x="577" y="232" width="48" measuredWidth="48" measuredHeight="6"/>
+ <widgets xsi:type="model:Callout" x="383" y="620" text="3" measuredWidth="27" measuredHeight="27" background="#00adef">
+ <font bold="true"/>
+ </widgets>
+ <widgets xsi:type="model:Callout" x="96" y="65" text="4" measuredWidth="27" measuredHeight="27" background="#00adef">
+ <font bold="true"/>
+ </widgets>
+ <widgets xsi:type="model:Rectangle" x="294" y="598" width="723" height="83" measuredWidth="723" measuredHeight="83">
+ <font/>
+ </widgets>
+ <widgets xsi:type="model:Chart" x="496" y="603" width="151" height="73" measuredWidth="151" measuredHeight="73" chartType="column"/>
+ <widgets xsi:type="model:Chart" x="312" y="602" width="177" height="74" measuredWidth="177" measuredHeight="74" chartType="line"/>
+ <widgets xsi:type="model:Chart" x="646" y="603" width="151" height="72" measuredWidth="151" measuredHeight="72" chartType="column"/>
+ <widgets xsi:type="model:Table" x="800" y="603" width="216" height="71" text="Name,Name,Age v,Kids,Likes,Actions&#xA;Peter,Severin,33,[x],{computer},[Edit] [View]&#xA;Cristina,Severin,33,[x],{shopping-cart},[Edit] [View]&#xA;Henri,Severin,2,[],{note},[Edit] [View]" measuredWidth="216" measuredHeight="71" rowHeight="20">
+ <font size="8"/>
+ </widgets>
+ <hRuler/>
+ <vRuler>
+ <guides position="108"/>
+ </vRuler>
+ <font/>
+</model:Screen>
diff --git a/images/ksm-speicher-laden-wolf05.jpg b/images/ksm-speicher-laden-wolf05.jpg
new file mode 100644
index 0000000..862e563
--- /dev/null
+++ b/images/ksm-speicher-laden-wolf05.jpg
Binary files differ
diff --git a/images/ksm-swing-screenshot.png b/images/ksm-swing-screenshot.png
new file mode 100644
index 0000000..6160926
--- /dev/null
+++ b/images/ksm-swing-screenshot.png
Binary files differ
diff --git a/images/node-edit-and-figure.PNG b/images/node-edit-and-figure.PNG
new file mode 100644
index 0000000..0cb0832
--- /dev/null
+++ b/images/node-edit-and-figure.PNG
Binary files differ
diff --git a/images/node-edit-and-figure.ucls b/images/node-edit-and-figure.ucls
new file mode 100644
index 0000000..263b27b
--- /dev/null
+++ b/images/node-edit-and-figure.ucls
@@ -0,0 +1,96 @@
+<class-diagram version="1.0.1" icons="true" automaticImage="PNG" always-add-relationships="true" generalizations="true"
+ realizations="true" associations="true" dependencies="true" nesting-relationships="true">
+ <class id="1" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.core.editor.figures.KSMNodeFigure"
+ project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/figures/KSMNodeFigure.java" binary="false">
+ <position x="524" y="64" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="false" package="false" protected="false" private="false"/>
+ <operations public="false" package="false" protected="false" private="false"/>
+ </display>
+ </class>
+ <class id="8" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.core.editor.parts.PartFactory"
+ project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/parts/PartFactory.java" binary="false">
+ <position x="527" y="530" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="11" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.core.editor.parts.KSMNodeEditPart"
+ project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/parts/KSMNodeEditPart.java" binary="false">
+ <position x="523" y="277" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="false" package="false" protected="false" private="false"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <interface id="16" corner="BOTTOM_RIGHT" language="java" name="de.dhbw.horb.ksm.xmlschema.api.Node"
+ project="ksm-datamodel" file="/ksm-datamodel/src/de/dhbw/horb/ksm/xmlschema/api/Node.java" binary="false">
+ <position x="166" y="156" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </interface>
+ <class id="17" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.parts.editmanager.NodeDirectEditManager" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/parts/editmanager/NodeDirectEditManager.java"
+ binary="false">
+ <position x="898" y="140" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="false" package="false" protected="false" private="false"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="18" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.policies.NodeComponentEditPolicy" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/policies/NodeComponentEditPolicy.java" binary="false">
+ <position x="900" y="36" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <class id="19" corner="BOTTOM_RIGHT" language="java"
+ name="de.dhbw.horb.ksm.core.editor.policies.NodeGraphicalNodeEditPolicy" project="de.dhbw.horb.ksm.core"
+ file="/de.dhbw.horb.ksm.core/src/de/dhbw/horb/ksm/core/editor/policies/NodeGraphicalNodeEditPolicy.java"
+ binary="false">
+ <position x="915" y="269" width="-1" height="-1"/>
+ <display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </display>
+ </class>
+ <dependency>
+ <end type="SOURCE" nodeId="11"/>
+ <end type="TARGET" nodeId="18"/>
+ </dependency>
+ <dependency>
+ <end type="SOURCE" nodeId="11"/>
+ <end type="TARGET" nodeId="1"/>
+ </dependency>
+ <dependency>
+ <end type="SOURCE" nodeId="19"/>
+ <end type="TARGET" nodeId="11"/>
+ </dependency>
+ <dependency>
+ <end type="SOURCE" nodeId="8"/>
+ <end type="TARGET" nodeId="11"/>
+ </dependency>
+ <association>
+ <end type="SOURCE" nodeId="11" navigable="false">
+ <attribute name="manager"/>
+ <multiplicity minimum="0" maximum="1"/>
+ </end>
+ <end type="TARGET" nodeId="17" navigable="true"/>
+ <display labels="true" multiplicity="true"/>
+ </association>
+ <classifier-display autosize="true" package="true" initial-value="false" signature="true" visibility="true">
+ <attributes public="true" package="true" protected="true" private="true"/>
+ <operations public="true" package="true" protected="true" private="true"/>
+ </classifier-display>
+ <association-display labels="true" multiplicity="true"/>
+</class-diagram> \ No newline at end of file
diff --git a/images/osgi-schema-ibm-developerworks.png b/images/osgi-schema-ibm-developerworks.png
new file mode 100644
index 0000000..b9f6270
--- /dev/null
+++ b/images/osgi-schema-ibm-developerworks.png
Binary files differ
diff --git a/images/piccolo2d-arch.ep b/images/piccolo2d-arch.ep
new file mode 100644
index 0000000..8412aa5
--- /dev/null
+++ b/images/piccolo2d-arch.ep
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">piccolo2d-arch</Property><Property name="id">1287051392413_6764</Property><Property name="width">273.4000244140625</Property><Property name="height">259</Property><Property name="dimBackground">false</Property><Property name="backgroundColor">#FFFFFFFF</Property><Property name="transparentBackground">true</Property><Property name="background">transparent</Property></Properties><Content><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="e1aacea1fb0c47ae9e72ee8b136f30a7" transform="matrix(1, 0, 0, 1, 10.4, 58)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[piccolo2d/PCanvas]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="83713648b0654dbc83aa7c728f332546" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="15715eb16f0b4e3db325a2f8ebb5b59a">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#83713648b0654dbc83aa7c728f332546" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#15715eb16f0b4e3db325a2f8ebb5b59a)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="a05d9a902f3b4867aac3088b37bb89e3"/>
+ <use xlink:href="#83713648b0654dbc83aa7c728f332546" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="b7f51a48630b450db5f42e7c2b304d23" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">piccolo2d/PCanvas</div></foreignObject><path id="b7f51a48630b450db5f42e7c2b304d23_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="3281f36e3b544c1cb2cc8c4a5a88da60" transform="matrix(1, 0, 0, 1, 10.4, 106)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[AWT]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="81dc0ff75bf7431495f83556b0038303" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="2e9f54d845df452690303557bef7be9e">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#81dc0ff75bf7431495f83556b0038303" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#2e9f54d845df452690303557bef7be9e)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="7c159d4e5695455dae7c76a89ec10e4c"/>
+ <use xlink:href="#81dc0ff75bf7431495f83556b0038303" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="fa0b9abb3a654ed3b832d53504ff2f10" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">AWT</div></foreignObject><path id="fa0b9abb3a654ed3b832d53504ff2f10_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="7383ced4b1f24b42a5f12a363f7ffc9c" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="f11594d724ab436883be10b9320e2631" transform="matrix(1, 0, 0, 1, 10.4, 212)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#7CCC54FF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Hardware]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(124, 204, 84); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="09a7fd5ddb594a2ca140e1549b52676c" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="7e3845707bb0493585f2015e20749338">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#09a7fd5ddb594a2ca140e1549b52676c" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#7e3845707bb0493585f2015e20749338)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="f7e926d371e04437b376d6bba1c5ffed"/>
+ <use xlink:href="#09a7fd5ddb594a2ca140e1549b52676c" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="9f53459a0a2a4f63b8a8b4a8acdb19d5" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Hardware</div></foreignObject><path id="9f53459a0a2a4f63b8a8b4a8acdb19d5_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="8449e7942f704dc6b9fc0a4d4281e8f8" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="9895d97bd3724c72924fa20418e1d1c9" transform="matrix(1, 0, 0, 1, -50, 201.4)"><p:metadata><p:property name="a"><![CDATA[60,0]]></p:property><p:property name="b"><![CDATA[312,0]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="d13c2c05ab3c45a7a5b8a7b643fd24df" d="M 60 0 L 312 0 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="659f66fb3df348d18f74786ddbe02e21" transform="translate(0)" d="M 60 0 L 312 0 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Group" xmlns:p="http://www.evolus.vn/Namespace/Pencil" transform="matrix(1, 0, 0, 1, 10.4, 153)" id="69d9c727fb6e4acd9913109328c400c5"><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="9129b0d32ea04f08a8404f13a64b169e" transform="matrix(1, 0, 0, 1, 0, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Windows]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="8f21c09c311847ee9ebbd3d8bef9303a" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="726eb38f126e451faf69716de305aeb9">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#8f21c09c311847ee9ebbd3d8bef9303a" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#726eb38f126e451faf69716de305aeb9)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="3ef451ad32854cd8b1c3c06c8a066e77"/>
+ <use xlink:href="#8f21c09c311847ee9ebbd3d8bef9303a" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="ff50403a85d84651ac3e21bb22e9b49c" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Windows</div></foreignObject><path id="ff50403a85d84651ac3e21bb22e9b49c_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="f5782a59de994f2ea561d96035e9f1d4" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="d106bb0013a94363acee12658d7dec21" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="1c1c30295b314b94b048f54b85a2c877" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="6f0bd8037b014db1860f10237543c3c3" transform="matrix(1, 0, 0, 1, 85, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Motfi/X11]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="9ee22261e8ce4cbab6c1347d7f08cd09" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="bdf9406788cb4d3c97f5c38dba970083">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#9ee22261e8ce4cbab6c1347d7f08cd09" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#bdf9406788cb4d3c97f5c38dba970083)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="1c162c9e9d9848c1b84cc02fb8704b97"/>
+ <use xlink:href="#9ee22261e8ce4cbab6c1347d7f08cd09" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="44ba8531bdf74eba9646fe934d803650" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Motfi/X11</div></foreignObject><path id="44ba8531bdf74eba9646fe934d803650_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="51a48688425845bf8339446b60686535" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="c10d9cfc478a47d3afb729c482bfc453" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="e9015fc0bdff4c1085fcbc58dec34bca" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="7c08c97f61f04be6a3406201c9b0919f" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="b9cd3fcd6414416eb87475b271bc1ab1" transform="matrix(1, 0, 0, 1, 172, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Carbon]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="6d317d53ba2342169b24d640e19b27f2" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="5c41e246bd75458a9eb87ed4ab17c2a2">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#6d317d53ba2342169b24d640e19b27f2" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#5c41e246bd75458a9eb87ed4ab17c2a2)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="cf6f108127904a629e532ead3521efdd"/>
+ <use xlink:href="#6d317d53ba2342169b24d640e19b27f2" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="908a0ba29c4d4e27b51e4b7d5ac655db" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Carbon</div></foreignObject><path id="908a0ba29c4d4e27b51e4b7d5ac655db_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="28caffbb23064b948129f1c39c7bd505" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="f0e1dfda06f84b7296f1c13d14cf4753" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="5ac884e389b14cb0bb6dba2612305e5b" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="9456d110cd40452ba5728b35e76e7a60" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="89ea964f047a43f1b0773420a7c5814b" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g></g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="4690853766e246fe807c93044664d193" transform="matrix(1, 0, 0, 1, 11.4, 10)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[KSM VirtualEditor<br _moz_dirty=""/>]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="c8e79ab0f75a4c8ba11941b8247095ff" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="7cb4b1bbf60e40f0ac990b263b2a683f">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#c8e79ab0f75a4c8ba11941b8247095ff" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#7cb4b1bbf60e40f0ac990b263b2a683f)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="9e95be5ddde94b84ae140604aa036240"/>
+ <use xlink:href="#c8e79ab0f75a4c8ba11941b8247095ff" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="f5556a419dae4889bdd35ae8ed344cd1" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">KSM VirtualEditor<br _moz_dirty=""/></div></foreignObject><path id="f5556a419dae4889bdd35ae8ed344cd1_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="24424d14dcba4e17bf123403a04de15d" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g></Content></Page></Pages></Document> \ No newline at end of file
diff --git a/images/piccolo2d-arch.png b/images/piccolo2d-arch.png
new file mode 100644
index 0000000..8e38a94
--- /dev/null
+++ b/images/piccolo2d-arch.png
Binary files differ
diff --git a/images/projekthistorie.png b/images/projekthistorie.png
new file mode 100644
index 0000000..98b316a
--- /dev/null
+++ b/images/projekthistorie.png
Binary files differ
diff --git a/images/projekthistorie.svg b/images/projekthistorie.svg
new file mode 100644
index 0000000..10e56a0
--- /dev/null
+++ b/images/projekthistorie.svg
@@ -0,0 +1,1057 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="716.09003"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="projekthistorie.svg"
+ inkscape:export-filename="/home/yvesf/vcs/sa/images/projekthistorie.png"
+ inkscape:export-xdpi="108"
+ inkscape:export-ydpi="108">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2884"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2920"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2984"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3009"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3074"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2895"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2990"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3039"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3061"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3083"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3105"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3135"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3189"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3214"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3273"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3298"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3513"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3513-0"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3573"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4367"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3330"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient4833"
+ inkscape:collect="always">
+ <stop
+ id="stop4835"
+ offset="0"
+ style="stop-color:#aaccee;stop-opacity:1;" />
+ <stop
+ id="stop4837"
+ offset="1"
+ style="stop-color:#336699;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4825"
+ inkscape:collect="always">
+ <stop
+ id="stop4827"
+ offset="0"
+ style="stop-color:#b3ddfd;stop-opacity:1" />
+ <stop
+ id="stop4829"
+ offset="1"
+ style="stop-color:#6699cc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4833"
+ id="linearGradient3397"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,2)"
+ x1="236.25528"
+ y1="346.04547"
+ x2="238.03323"
+ y2="571.05756" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4825"
+ id="linearGradient3399"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.97319034,0,0,1.0135135,-0.50694579,-13.679101)"
+ x1="244.84155"
+ y1="415.74597"
+ x2="244.84155"
+ y2="639.99988" />
+ <inkscape:perspective
+ id="perspective3409"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4833-8"
+ id="linearGradient3397-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,2)"
+ x1="236.25528"
+ y1="346.04547"
+ x2="238.03323"
+ y2="571.05756" />
+ <linearGradient
+ id="linearGradient4833-8"
+ inkscape:collect="always">
+ <stop
+ id="stop4835-0"
+ offset="0"
+ style="stop-color:#aaccee;stop-opacity:1;" />
+ <stop
+ id="stop4837-0"
+ offset="1"
+ style="stop-color:#336699;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4825-6"
+ id="linearGradient3399-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.97319034,0,0,1.0135135,-0.50694579,-13.679101)"
+ x1="244.84155"
+ y1="415.74597"
+ x2="244.84155"
+ y2="639.99988" />
+ <linearGradient
+ id="linearGradient4825-6"
+ inkscape:collect="always">
+ <stop
+ id="stop4827-8"
+ offset="0"
+ style="stop-color:#b3ddfd;stop-opacity:1" />
+ <stop
+ id="stop4829-4"
+ offset="1"
+ style="stop-color:#6699cc;stop-opacity:1" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective4291"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4336"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4336-6"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4372"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4396"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2999"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3799"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="364.7646"
+ inkscape:cy="337.29835"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1436"
+ inkscape:window-height="864"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-336.27302)">
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="525.1933"
+ y="882.82428"
+ id="text2833"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2835"
+ x="525.1933"
+ y="882.82428">Pustelnik I/II</tspan><tspan
+ sodipodi:role="line"
+ x="525.1933"
+ y="906.12787"
+ id="tspan2849">Hirarchien</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="633.43188"
+ y="881.44586"
+ id="text2841"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2843"
+ x="633.43188"
+ y="881.44586">Klein I/II</tspan><tspan
+ sodipodi:role="line"
+ x="633.43188"
+ y="904.74945"
+ id="tspan2851">Funktionen</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="72.85714"
+ y="733.79077"
+ id="text2845"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2847"
+ x="72.85714"
+ y="733.79077" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="167.41319"
+ y="596.01025"
+ id="text2857"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2859"
+ x="167.41319"
+ y="596.01025">Braden</tspan><tspan
+ sodipodi:role="line"
+ x="167.41319"
+ y="619.31384"
+ id="tspan2861">Druckfunktion</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="167.94116"
+ y="516.11548"
+ id="text2857-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="167.94116"
+ y="516.11548"
+ id="tspan2861-4">Schäfer, Wolf</tspan><tspan
+ sodipodi:role="line"
+ x="167.94116"
+ y="539.41907"
+ id="tspan2906">Modellierung eines Prozess in ksm</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="418.7916"
+ y="596.01025"
+ id="text2857-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="418.7916"
+ y="596.01025"
+ id="tspan2861-45">Künne</tspan><tspan
+ sodipodi:role="line"
+ x="418.7916"
+ y="619.31384"
+ id="tspan2942">Zoomfunktion</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="243.07613"
+ y="991.23877"
+ id="text2948"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2950"
+ x="243.07613"
+ y="991.23877">Dreher</tspan><tspan
+ sodipodi:role="line"
+ x="243.07613"
+ y="1014.5424"
+ id="tspan2952">Refactoring</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="477.78781"
+ y="995.34802"
+ id="text2960"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2962"
+ x="477.78781"
+ y="995.34802">Schneider</tspan><tspan
+ sodipodi:role="line"
+ x="477.78781"
+ y="1018.6516"
+ id="tspan2964">qksm</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="589.53247"
+ y="995.46179"
+ id="text2966"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2968"
+ x="589.53247"
+ y="995.46179">Obergfell</tspan><tspan
+ sodipodi:role="line"
+ x="589.53247"
+ y="1018.7654"
+ id="tspan2970">qksm</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="195.56984"
+ y="760.09833"
+ id="text2857-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="195.56984"
+ y="760.09833"
+ id="tspan2861-0">Aigner</tspan><tspan
+ sodipodi:role="line"
+ x="195.56984"
+ y="783.40192"
+ id="tspan3031">weiterentwicklung</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3033"
+ sodipodi:cx="484.28571"
+ sodipodi:cy="438.38019"
+ sodipodi:rx="163.67145"
+ sodipodi:ry="88.78093"
+ d="m 647.95715,438.38019 a 163.67145,88.78093 0 1 1 -327.34289,0 163.67145,88.78093 0 1 1 327.34289,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,286.5583,571.59278)" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3035"
+ sodipodi:cx="560.71429"
+ sodipodi:cy="567.66589"
+ sodipodi:rx="567.28046"
+ sodipodi:ry="74.743156"
+ d="m 1127.9948,567.66589 a 567.28046,74.743156 0 1 1 -1134.5609621,0 567.28046,74.743156 0 1 1 1134.5609621,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,76.43007,597.2268)" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="368.34674"
+ y="992.20038"
+ id="text2966-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="368.34674"
+ y="992.20038"
+ id="tspan2970-2">Henn</tspan><tspan
+ sodipodi:role="line"
+ x="368.34674"
+ y="1015.504"
+ id="tspan3096">Redesign</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="164.02451"
+ y="882.82104"
+ id="text2833-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="164.02451"
+ y="882.82104"
+ id="tspan2849-4">Knobloch, Hauser</tspan><tspan
+ sodipodi:role="line"
+ x="164.02451"
+ y="906.12463"
+ id="tspan2965">Redesign</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3033-5"
+ sodipodi:cx="484.28571"
+ sodipodi:cy="438.38019"
+ sodipodi:rx="136.99586"
+ sodipodi:ry="84.950554"
+ d="m 621.28157,438.38019 a 136.99586,84.950554 0 1 1 -273.99173,0 136.99586,84.950554 0 1 1 273.99173,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,-107.83043,578.54459)" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="392.9646"
+ y="870.5705"
+ id="text2833-1-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="392.9646"
+ y="870.5705"
+ id="tspan2965-0">Lukauer I/II</tspan><tspan
+ sodipodi:role="line"
+ x="392.9646"
+ y="893.87408"
+ id="tspan3015">hybride</tspan><tspan
+ sodipodi:role="line"
+ x="392.9646"
+ y="917.17767"
+ id="tspan4386">Knote</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:4.27769566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:17.110782, 8.555391, 4.2776955, 8.555391;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3033-5-6"
+ sodipodi:cx="484.28571"
+ sodipodi:cy="438.38019"
+ sodipodi:rx="90.940468"
+ sodipodi:ry="85.663506"
+ d="m 575.22617,438.38019 a 90.940468,85.663506 0 1 1 -181.88093,0 90.940468,85.663506 0 1 1 181.88093,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,93.31215,572.83379)" />
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.70131218px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+ d="M 288.62249,807.32973 268.84761,831.4714"
+ id="path3098-3"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3033-5-0"
+ sodipodi:cx="484.28571"
+ sodipodi:cy="438.38019"
+ sodipodi:rx="134.37703"
+ sodipodi:ry="58.57143"
+ d="m 618.66273,438.38019 c 0,32.34811 -60.16264,58.57143 -134.37702,58.57143 -74.21439,0 -134.37703,-26.22332 -134.37703,-58.57143 0,-32.34811 60.16264,-58.57143 134.37703,-58.57143 74.21438,0 134.37702,26.22332 134.37702,58.57143 z"
+ transform="matrix(0.70131219,0,0,0.70131219,-75.417649,460.86526)" />
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.94193441px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+ d="m 306.18054,851.28926 119.78129,-41.403 100.41037,42.72353"
+ id="path3119"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial;stroke-miterlimit:4;stroke-dasharray:12,6,3,6;stroke-dashoffset:0"
+ d="m 486.49929,918.94736 39.46022,41.83373 26.79037,9.41805"
+ id="path3121"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.70131218px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+ d="M 49.48326,481.21111 629.0818,478.37737"
+ id="path3155"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="168.40541"
+ y="436.91006"
+ id="text3165"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3167"
+ x="168.40541"
+ y="436.91006">Mohrlock, Seidel, Schüssler</tspan><tspan
+ sodipodi:role="line"
+ x="168.40541"
+ y="460.21365"
+ id="tspan3169">Zusammenführung</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="167.41319"
+ y="352.27405"
+ id="text3175"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3177"
+ x="167.41319"
+ y="352.27405">Kelber, Dawidowski, Lachenmeier, Riess, Maas</tspan><tspan
+ sodipodi:role="line"
+ x="167.41319"
+ y="375.57764"
+ id="tspan3179">Entwurf als einzelne Module, nicht funktionsfähig</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="168.10501"
+ y="674.57172"
+ id="text2857-65"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="168.10501"
+ y="674.57172"
+ id="tspan2861-9">Umbeer</tspan><tspan
+ sodipodi:role="line"
+ x="168.10501"
+ y="697.87531"
+ id="tspan3236">Allg. verbesserungen</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="418.34555"
+ y="678.49512"
+ id="text3238"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3240"
+ x="418.34555"
+ y="678.49512">Müller</tspan><tspan
+ sodipodi:role="line"
+ x="418.34555"
+ y="701.79871"
+ id="tspan3242">Visualisierung</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="943.25629"
+ id="text2837-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2839-5"
+ x="18.126654"
+ y="943.25629">2010</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="610.15924"
+ id="text2853-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2855-5"
+ x="18.126654"
+ y="610.15924">2006</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="526.88495"
+ id="text2908-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2910-7"
+ x="18.126654"
+ y="526.88495">2005</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="1026.5305"
+ id="text2944-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2946-4"
+ x="18.126654"
+ y="1026.5305">2011</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="776.7077"
+ id="text2853-0-30"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2855-3-78"
+ x="18.126654"
+ y="776.7077">2008</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="443.61069"
+ id="text3161-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3163-8"
+ x="18.126654"
+ y="443.61069">2004</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="360.3364"
+ id="text3171-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3173-4"
+ x="18.126654"
+ y="360.3364">2003</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="693.43347"
+ id="text2853-4-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2855-7-1"
+ x="18.126654"
+ y="693.43347">2007</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="18.126654"
+ y="859.98199"
+ id="text2853-0-3-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2855-3-7-9"
+ x="18.126654"
+ y="859.98199">2009</tspan></text>
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.70131218px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+ d="m 287.98446,809.31616 93.52516,41.4701"
+ id="path3098-3-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.70131218px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+ d="m 360.10936,771.1324 213.10693,54.81934"
+ id="path3098-3-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:4.27769566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:17.110782, 8.555391, 4.2776955, 8.555391;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3035-8-9"
+ sodipodi:cx="560.71429"
+ sodipodi:cy="567.66589"
+ sodipodi:rx="157.92769"
+ sodipodi:ry="51.593288"
+ d="m 718.64198,567.66589 a 157.92769,51.593288 0 1 1 -315.85537,0 157.92769,51.593288 0 1 1 315.85537,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,178.51423,603.48645)" />
+ <g
+ id="g3387"
+ transform="translate(-86.941126,91.287843)">
+ <g
+ transform="matrix(0.11636178,0,0,0.11636178,752.51898,671.61164)"
+ id="g4488">
+ <g
+ id="g4877"
+ transform="matrix(1.4738293,0,0,1.4738293,-52.053466,-166.9319)">
+ <path
+ id="rect4815"
+ d="m 98.423865,343.77632 c -11.08,0 -20,8.92 -20,20 l 0,48.5 0,33.71875 0,105.0625 c 0,11.08 8.92,20 20,20 l 279.218745,0 c 11.08,0 20,-8.92 20,-20 l 0,-138.78125 c 0,-11.08 -8.92,-20 -20,-20 l -117.125,0 c -7.54785,-1.18445 -9.7958,-6.84828 -10.375,-11.3125 l 0,-5.625 0,-11.5625 c 0,-11.08 -8.92,-20 -20,-20 l -131.718745,0 z"
+ style="fill:#6699cc;fill-opacity:1;stroke:none" />
+ <rect
+ style="fill:#336699;fill-opacity:1;stroke:none"
+ id="rect4817"
+ width="366.6853"
+ height="227.28435"
+ x="54.42783"
+ y="409.68503"
+ rx="12.884699"
+ ry="12.199305" />
+ <path
+ style="fill:url(#linearGradient3397);fill-opacity:1;stroke:none"
+ d="m 98.423865,345.77632 c -11.08,0 -20,8.92 -20,20 l 0,48.5 0,33.71875 0,105.0625 c 0,11.08 8.92,20 20,20 l 279.218745,0 c 11.08,0 20,-8.92 20,-20 l 0,-138.78125 c 0,-11.08 -8.92,-20 -20,-20 l -117.125,0 c -7.54785,-1.18445 -9.7958,-6.84828 -10.375,-11.3125 l 0,-5.625 0,-11.5625 c 0,-11.08 -8.92,-20 -20,-20 l -131.718745,0 z"
+ id="path4873" />
+ <rect
+ ry="12.199305"
+ rx="12.884699"
+ y="407.68503"
+ x="54.42783"
+ height="227.28435"
+ width="366.6853"
+ id="rect4869"
+ style="fill:url(#linearGradient3399);fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <text
+ id="text3383"
+ y="717.74658"
+ x="791.8233"
+ style="font-size:9.97655201px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="717.74658"
+ x="791.8233"
+ id="tspan3385"
+ sodipodi:role="line"
+ style="font-style:italic;-inkscape-font-specification:'1942 report Italic'">SVN</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="672.65381"
+ y="840.37823"
+ id="text3041"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3043"
+ x="672.65381"
+ y="840.37823">ksm08</tspan></text>
+ <g
+ id="g3387-6"
+ transform="translate(49.761036,232.47912)">
+ <g
+ transform="matrix(0.11636178,0,0,0.11636178,752.51898,671.61164)"
+ id="g4488-9">
+ <g
+ id="g4877-4"
+ transform="matrix(1.4738293,0,0,1.4738293,-52.053466,-166.9319)">
+ <path
+ id="rect4815-6"
+ d="m 98.423865,343.77632 c -11.08,0 -20,8.92 -20,20 l 0,48.5 0,33.71875 0,105.0625 c 0,11.08 8.92,20 20,20 l 279.218745,0 c 11.08,0 20,-8.92 20,-20 l 0,-138.78125 c 0,-11.08 -8.92,-20 -20,-20 l -117.125,0 c -7.54785,-1.18445 -9.7958,-6.84828 -10.375,-11.3125 l 0,-5.625 0,-11.5625 c 0,-11.08 -8.92,-20 -20,-20 l -131.718745,0 z"
+ style="fill:#6699cc;fill-opacity:1;stroke:none" />
+ <rect
+ style="fill:#336699;fill-opacity:1;stroke:none"
+ id="rect4817-3"
+ width="366.6853"
+ height="227.28435"
+ x="54.42783"
+ y="409.68503"
+ rx="12.884699"
+ ry="12.199305" />
+ <path
+ style="fill:url(#linearGradient3397-3);fill-opacity:1;stroke:none"
+ d="m 98.423865,345.77632 c -11.08,0 -20,8.92 -20,20 l 0,48.5 0,33.71875 0,105.0625 c 0,11.08 8.92,20 20,20 l 279.218745,0 c 11.08,0 20,-8.92 20,-20 l 0,-138.78125 c 0,-11.08 -8.92,-20 -20,-20 l -117.125,0 c -7.54785,-1.18445 -9.7958,-6.84828 -10.375,-11.3125 l 0,-5.625 0,-11.5625 c 0,-11.08 -8.92,-20 -20,-20 l -131.718745,0 z"
+ id="path4873-2" />
+ <rect
+ ry="12.199305"
+ rx="12.884699"
+ y="407.68503"
+ x="54.42783"
+ height="227.28435"
+ width="366.6853"
+ id="rect4869-6"
+ style="fill:url(#linearGradient3399-3);fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <text
+ id="text3383-1"
+ y="717.74658"
+ x="791.8233"
+ style="font-size:9.97655201px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="717.74658"
+ x="791.8233"
+ id="tspan3385-2"
+ sodipodi:role="line"
+ style="font-style:italic;-inkscape-font-specification:'1942 report Italic'">SVN</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="818.71173"
+ y="981.15497"
+ id="text3037"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3039"
+ x="818.71173"
+ y="981.15497">ksm</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3471"
+ width="245"
+ height="170.83348"
+ x="605"
+ y="164.09003"
+ transform="translate(0,336.27302)" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3475"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ transform="translate(29,336.27302)"><flowRegion
+ id="flowRegion3477"><rect
+ id="rect3479"
+ width="200"
+ height="255"
+ x="612"
+ y="171.09003" /></flowRegion><flowPara
+ id="flowPara4277"
+ style="font-size:18px">synchronisiert lt. Klein II/S.33</flowPara></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="397.17462"
+ y="811.29199"
+ id="text3497"><tspan
+ sodipodi:role="line"
+ id="tspan3499"
+ x="397.17462"
+ y="811.29199">1</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path3501"
+ sodipodi:cx="412.24326"
+ sodipodi:cy="479.56281"
+ sodipodi:rx="3.5355339"
+ sodipodi:ry="3.5355339"
+ d="m 415.77879,479.56281 c 0,1.95262 -1.58291,3.53553 -3.53553,3.53553 -1.95263,0 -3.53554,-1.58291 -3.53554,-3.53553 0,-1.95263 1.58291,-3.53554 3.53554,-3.53554 1.95262,0 3.53553,1.58291 3.53553,3.53554 z"
+ transform="translate(1.4142136,334.1517)" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3475-6"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ transform="translate(30.73047,429.22918)"><flowRegion
+ id="flowRegion3477-1"><rect
+ id="rect3479-2"
+ width="207"
+ height="256"
+ x="612"
+ y="171.09003" /></flowRegion><flowPara
+ id="flowPara4277-3"
+ style="font-size:18px">erster lauffähiger Stand (lt. Wolf S.4)</flowPara></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="614.1543"
+ y="527.11108"
+ id="text3497-7"><tspan
+ sodipodi:role="line"
+ id="tspan3499-9"
+ x="614.1543"
+ y="527.11108">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="616.1543"
+ y="628.48364"
+ id="text3497-6"><tspan
+ sodipodi:role="line"
+ id="tspan3499-3"
+ x="616.1543"
+ y="628.48364">2</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path3501-4"
+ sodipodi:cx="412.24326"
+ sodipodi:cy="479.56281"
+ sodipodi:rx="3.5355339"
+ sodipodi:ry="3.5355339"
+ d="m 415.77879,479.56281 c 0,1.95262 -1.58291,3.53553 -3.53553,3.53553 -1.95263,0 -3.53554,-1.58291 -3.53554,-3.53553 0,-1.95263 1.58291,-3.53554 3.53554,-3.53554 1.95262,0 3.53553,1.58291 3.53553,3.53554 z"
+ transform="translate(193.25675,-0.44975938)" />
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="613.13116"
+ y="471.44086"
+ id="text3497-6-1"><tspan
+ sodipodi:role="line"
+ id="tspan3499-3-0"
+ x="613.13116"
+ y="471.44086">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="138.20943"
+ y="990.42206"
+ id="text2948-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2950-9"
+ x="138.20943"
+ y="990.42206">Vogt</tspan><tspan
+ sodipodi:role="line"
+ x="138.20943"
+ y="1013.7256"
+ id="tspan2952-4">GUI Impr..</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.64287376px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="690.93561"
+ y="990.88904"
+ id="text2954"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2956"
+ x="690.93561"
+ y="990.88904">Fischer</tspan><tspan
+ sodipodi:role="line"
+ x="690.93561"
+ y="1014.1926"
+ id="tspan2958">eclipse RCP</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="font-size:26.58284569px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:none;stroke:#000000;stroke-width:3.2182529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.21825292, 19.30951749;stroke-dashoffset:0;font-family:Arial;-inkscape-font-specification:Arial"
+ id="path3035-8"
+ sodipodi:cx="560.71429"
+ sodipodi:cy="567.66589"
+ sodipodi:rx="88.415138"
+ sodipodi:ry="49.810917"
+ d="m 649.12943,567.66589 a 88.415138,49.810917 0 1 1 -176.83027,0 88.415138,49.810917 0 1 1 176.83027,0 z"
+ transform="matrix(0.70131219,0,0,0.70131219,345.76423,599.25204)" />
+ </g>
+</svg>
diff --git a/images/rcp-beispiel-maximiert.jpg b/images/rcp-beispiel-maximiert.jpg
new file mode 100644
index 0000000..6541d63
--- /dev/null
+++ b/images/rcp-beispiel-maximiert.jpg
Binary files differ
diff --git a/images/rcp-beispiel-umordnung.jpg b/images/rcp-beispiel-umordnung.jpg
new file mode 100644
index 0000000..965415b
--- /dev/null
+++ b/images/rcp-beispiel-umordnung.jpg
Binary files differ
diff --git a/images/rcp-beispielmodell.jpg b/images/rcp-beispielmodell.jpg
new file mode 100644
index 0000000..1aa090c
--- /dev/null
+++ b/images/rcp-beispielmodell.jpg
Binary files differ
diff --git a/images/table-editor.jpg b/images/table-editor.jpg
new file mode 100644
index 0000000..687bd55
--- /dev/null
+++ b/images/table-editor.jpg
Binary files differ
diff --git a/images/transformation.png b/images/transformation.png
new file mode 100644
index 0000000..a3c1d9b
--- /dev/null
+++ b/images/transformation.png
Binary files differ
diff --git a/images/transformation.svg b/images/transformation.svg
new file mode 100644
index 0000000..47f2600
--- /dev/null
+++ b/images/transformation.svg
@@ -0,0 +1,1027 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448"
+ height="1100"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="transformation.svg"
+ inkscape:export-filename="/home/yvesf/vcs/sa/images/transformation.png"
+ inkscape:export-xdpi="149.97273"
+ inkscape:export-ydpi="149.97273">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective3631"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3660"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5197"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5222"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5283"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5283-0"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5314"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5351"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5375"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5397"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5438"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5530"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5880"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5939"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5961"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective5986"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective6011"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective6573"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective6632"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective6632-3"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective6971"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective7009"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective7031"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective7157"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective7400"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective7400-1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="281.37167"
+ inkscape:cy="349.46163"
+ inkscape:document-units="mm"
+ inkscape:current-layer="g7060-6"
+ showgrid="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ units="cm"
+ showborder="true"
+ inkscape:showpageshadow="true"
+ borderlayer="false"
+ inkscape:snap-bbox="true"
+ inkscape:snap-bbox-edge-midpoints="false"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-center="false"
+ inkscape:window-width="1436"
+ inkscape:window-height="864"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5339"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ units="mm"
+ spacingx="1mm"
+ spacingy="1mm"
+ dotted="false" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,47.638094)">
+ <g
+ id="g7060"
+ transform="translate(35.433071,-974.40945)">
+ <rect
+ ry="0"
+ y="1140.9446"
+ x="88.58268"
+ height="276.27328"
+ width="397.14288"
+ id="rect3603"
+ style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 8;stroke-dashoffset:0" />
+ <g
+ transform="translate(49.928187,1128.7191)"
+ id="g3611">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816"
+ width="171.80283"
+ height="47.578693"
+ x="127.23717"
+ y="79.548332"
+ ry="5.5357141" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.69355583px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="174.38667"
+ y="95.336945"
+ id="text3605"><tspan
+ sodipodi:role="line"
+ id="tspan3607"
+ x="174.38667"
+ y="95.336945">KSM Node</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 126.42857,101.6479 172.14286,0"
+ id="path3609" />
+ <path
+ transform="translate(10.86484,-89.063855)"
+ d="m 121.78571,168.61218 c 0,3.45178 -2.79822,6.25 -6.25,6.25 -3.45178,0 -6.25,-2.79822 -6.25,-6.25 0,-3.45178 2.79822,-6.25 6.25,-6.25 3.45178,0 6.25,2.79822 6.25,6.25 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260-3-9"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <text
+ id="text3617"
+ y="1135.6191"
+ x="18.287876"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1135.6191"
+ x="18.287876"
+ id="tspan3619"
+ sodipodi:role="line">(25,25)</tspan></text>
+ <a
+ transform="translate(-38.57143,1028.0502)"
+ id="a6562">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3621"
+ width="670"
+ height="440"
+ x="38.57143"
+ y="26.140238" />
+ </a>
+ <g
+ transform="matrix(0.7507518,0,0,0.7507518,58.947886,633.20437)"
+ id="text3648"
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Anonymous Pro;-inkscape-font-specification:Anonymous Pro">
+ <path
+ style="fill:#0000ff"
+ id="path5468"
+ d="m 476.51257,652.33069 -5.96093,17.8418 -2.54297,0 -5.90625,-17.8418 1.98242,0 5.20898,15.9414 5.18164,-15.9414 2.03711,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5470"
+ d="m 485.86414,654.88733 -2.54297,0 0,-2.55664 2.54297,0 0,2.55664 m 2.54296,15.28516 -7.64257,0 0,-1.59961 2.88476,0 0,-9.54297 -2.88476,0 0,-1.59961 4.77148,0 0,11.14258 2.87109,0 0,1.59961" />
+ <path
+ style="fill:#0000ff"
+ id="path5472"
+ d="m 495.4071,664.45764 c 0.13672,1.34896 0.62891,2.42448 1.47657,3.22656 0.84765,0.80209 1.95051,1.20313 3.30859,1.20313 0.95702,0 1.80924,-0.19596 2.55664,-0.58789 0.74739,-0.39193 1.30793,-0.87956 1.68164,-1.46289 l 1.3125,0.90234 c -0.63803,0.89323 -1.3991,1.57683 -2.2832,2.05078 -0.88412,0.46485 -1.97332,0.69727 -3.26758,0.69727 -0.98438,0 -1.88672,-0.16406 -2.70703,-0.49219 -0.82032,-0.32812 -1.53125,-0.78385 -2.13281,-1.36719 -0.59245,-0.59244 -1.05274,-1.29426 -1.38086,-2.10547 -0.32813,-0.81119 -0.49219,-1.71353 -0.49219,-2.70703 0,-0.96614 0.14583,-1.85481 0.4375,-2.66601 0.30078,-0.8203 0.72917,-1.52668 1.28516,-2.11914 0.5651,-0.60155 1.24869,-1.0664 2.05078,-1.39453 0.80208,-0.33723 1.69986,-0.50585 2.69336,-0.50586 1.08462,1e-5 2.03254,0.1823 2.84375,0.54687 0.81118,0.3646 1.48566,0.87046 2.02343,1.51758 0.54687,0.63803 0.94791,1.40366 1.20313,2.29687 0.26431,0.89324 0.39647,1.88217 0.39648,2.9668 l -11.00586,0 m 9.02344,-1.59961 c -0.20964,-1.39452 -0.7155,-2.43358 -1.51758,-3.11719 -0.80209,-0.68358 -1.79102,-1.02537 -2.96679,-1.02539 -0.60157,2e-5 -1.15756,0.10028 -1.66797,0.30079 -0.51042,0.19141 -0.96159,0.46941 -1.35352,0.83398 -0.39193,0.36459 -0.72005,0.80665 -0.98437,1.32617 -0.26433,0.51043 -0.43295,1.07097 -0.50586,1.68164 l 8.99609,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5474"
+ d="m 522.01257,657.4303 -2.58398,12.74219 -2.1875,0 -2.03711,-9.35157 -1.92773,9.35157 -2.1875,0 -2.61133,-12.74219 1.99609,0 1.8457,10.19922 1.98243,-10.19922 1.85937,0 2.03711,10.19922 1.8457,-10.19922 1.96875,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5476"
+ d="m 536.90125,663.81506 c -2e-5,0.9935 -0.15497,1.89584 -0.46485,2.70703 -0.30991,0.81121 -0.74741,1.51303 -1.3125,2.10547 -0.556,0.58334 -1.23048,1.03907 -2.02344,1.36719 -0.79297,0.32813 -1.68164,0.49219 -2.66601,0.49219 -0.67449,0 -1.33074,-0.12305 -1.96875,-0.36914 -0.62891,-0.2461 -1.2168,-0.61068 -1.76367,-1.09375 l 0,6.24804 -1.87305,0 0,-17.84179 1.87305,0 0,1.17578 c 1.15754,-0.98436 2.40168,-1.47655 3.73242,-1.47656 0.98437,1e-5 1.87304,0.16407 2.66601,0.49218 0.79296,0.31903 1.46744,0.77931 2.02344,1.38086 0.56509,0.59246 1.00259,1.3034 1.3125,2.13282 0.30988,0.82032 0.46483,1.71354 0.46485,2.67968 m -1.87305,0 c -10e-6,-0.71093 -0.10027,-1.37629 -0.30078,-1.99609 -0.19142,-0.6289 -0.48309,-1.17121 -0.875,-1.62695 -0.39194,-0.45572 -0.87501,-0.81575 -1.44922,-1.08008 -0.56511,-0.26431 -1.22136,-0.39647 -1.96875,-0.39649 -0.71094,2e-5 -1.37631,0.13218 -1.9961,0.39649 -0.61068,0.26433 -1.18945,0.69272 -1.73632,1.28515 l 0,6.83594 c 0.54687,0.59245 1.12564,1.01628 1.73632,1.27149 0.61979,0.25521 1.28516,0.38281 1.9961,0.38281 0.74739,0 1.40364,-0.13216 1.96875,-0.39649 0.57421,-0.26432 1.05728,-0.62434 1.44922,-1.08007 0.39191,-0.45573 0.68358,-0.98893 0.875,-1.59961 0.20051,-0.61979 0.30077,-1.28515 0.30078,-1.9961" />
+ <path
+ style="fill:#0000ff"
+ id="path5478"
+ d="m 552.54187,663.84241 c -10e-6,0.99349 -0.15952,1.89583 -0.47852,2.70703 -0.3099,0.8112 -0.76108,1.50846 -1.35351,2.0918 -0.58335,0.57422 -1.28517,1.02539 -2.10547,1.35351 -0.82032,0.32813 -1.73634,0.49219 -2.74805,0.49219 -0.99349,0 -1.90039,-0.16406 -2.7207,-0.49219 -0.82032,-0.32812 -1.52669,-0.77929 -2.11914,-1.35351 -0.58333,-0.58334 -1.03451,-1.2806 -1.35352,-2.0918 -0.30989,-0.8112 -0.46484,-1.71354 -0.46484,-2.70703 0,-0.96614 0.15495,-1.86393 0.46484,-2.69336 0.31901,-0.83853 0.77019,-1.54947 1.35352,-2.13281 0.59245,-0.59244 1.29882,-1.05273 2.11914,-1.38086 0.82031,-0.33723 1.72721,-0.50585 2.7207,-0.50586 1.01171,1e-5 1.92773,0.16863 2.74805,0.50586 0.8203,0.32813 1.52212,0.78842 2.10547,1.38086 0.59243,0.58334 1.04361,1.29428 1.35351,2.13281 0.319,0.82943 0.47851,1.72722 0.47852,2.69336 m -1.87305,0 c -10e-6,-0.72916 -0.10938,-1.39908 -0.32812,-2.00977 -0.20965,-0.61978 -0.5241,-1.1621 -0.94336,-1.62695 -0.41928,-0.46483 -0.9297,-0.82942 -1.53125,-1.09375 -0.59246,-0.26431 -1.26238,-0.39647 -2.00977,-0.39649 -0.7474,2e-5 -1.42188,0.13218 -2.02343,0.39649 -0.59246,0.26433 -1.09376,0.62892 -1.50391,1.09375 -0.41016,0.46485 -0.72461,1.00717 -0.94336,1.62695 -0.20964,0.61069 -0.31445,1.28061 -0.31445,2.00977 0,0.72917 0.10481,1.40365 0.31445,2.02343 0.21875,0.61069 0.5332,1.13933 0.94336,1.58594 0.41015,0.44662 0.91145,0.79753 1.50391,1.05274 0.60155,0.25521 1.27603,0.38281 2.02343,0.38281 0.74739,0 1.41731,-0.1276 2.00977,-0.38281 0.60155,-0.25521 1.11197,-0.60612 1.53125,-1.05274 0.41926,-0.44661 0.73371,-0.97525 0.94336,-1.58594 0.21874,-0.61978 0.32811,-1.29426 0.32812,-2.02343" />
+ <path
+ style="fill:#0000ff"
+ id="path5480"
+ d="m 566.82898,659.22131 c -0.67449,-0.33722 -1.47657,-0.50584 -2.40625,-0.50586 -0.76563,2e-5 -1.44923,0.16408 -2.05078,0.49219 -0.60157,0.32814 -1.11199,0.76108 -1.53125,1.29883 -0.41928,0.52865 -0.74285,1.13933 -0.9707,1.83203 -0.21876,0.6836 -0.32813,1.38998 -0.32813,2.11914 l 0,4.11524 2.88477,0 0,1.59961 -7.64258,0 0,-1.59961 2.88476,0 0,-9.54297 -2.88476,0 0,-1.59961 4.75781,0 0,3.19922 c 0.85677,-2.33332 2.48372,-3.49999 4.88086,-3.5 0.64712,1e-5 1.20767,0.041 1.68164,0.12304 0.48306,0.082 0.92968,0.22788 1.33984,0.4375 l -0.61523,1.53125" />
+ <path
+ style="fill:#0000ff"
+ id="path5482"
+ d="m 582.97546,666.11194 c -0.14584,1.33984 -0.67449,2.40625 -1.58593,3.19922 -0.90236,0.78385 -2.03256,1.17578 -3.39063,1.17578 -0.7474,0 -1.43099,-0.12305 -2.05078,-0.36914 -0.6198,-0.2461 -1.14844,-0.58789 -1.58594,-1.02539 -0.4375,-0.4375 -0.7793,-0.96159 -1.02539,-1.57227 -0.23698,-0.61979 -0.35547,-1.29427 -0.35547,-2.02344 l 0,-6.46679 -2.88476,0 0,-1.59961 2.88476,0 0,-5.09961 1.87305,0 0,5.09961 5.42773,0 0,1.59961 -5.42773,0 0,6.46679 c 0,0.46485 0.0729,0.90235 0.21875,1.3125 0.15494,0.41016 0.36458,0.77019 0.62891,1.08008 0.27343,0.3099 0.60155,0.55599 0.98437,0.73828 0.38281,0.17318 0.82031,0.25977 1.3125,0.25977 0.92968,0 1.70442,-0.28711 2.32422,-0.86133 0.6289,-0.58333 0.98892,-1.33528 1.08008,-2.25586 l 1.57226,0.3418" />
+ </g>
+ <g
+ transform="translate(261.55144,1210.8528)"
+ id="g3611-4">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-7"
+ width="171.80283"
+ height="47.578693"
+ x="127.23717"
+ y="79.548332"
+ ry="5.5357141" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.69355583px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="174.38667"
+ y="95.336945"
+ id="text3605-8"><tspan
+ sodipodi:role="line"
+ id="tspan3607-4"
+ x="174.38667"
+ y="95.336945">KSM Node</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 126.42857,101.6479 172.14286,0"
+ id="path3609-5" />
+ </g>
+ <rect
+ y="1264.938"
+ x="491.21387"
+ height="90.408653"
+ width="96.469566"
+ id="rect3686"
+ style="fill:#ffffff;fill-opacity:0.81089741;fill-rule:evenodd;stroke:none" />
+ <text
+ id="text3617-6"
+ y="1135.5985"
+ x="201.81615"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1135.5985"
+ x="201.81615"
+ id="tspan3619-3"
+ sodipodi:role="line">(0,0)</tspan></text>
+ <text
+ id="text3617-9"
+ y="1459.8422"
+ x="389.76379"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1459.8422"
+ x="389.76379"
+ id="tspan3619-95"
+ sodipodi:role="line">(250,250)</tspan></text>
+ <text
+ id="text3617-6-2"
+ y="1459.8422"
+ x="513.77954"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1459.8422"
+ x="513.77954"
+ id="tspan3619-3-1"
+ sodipodi:role="line">(200,200)</tspan></text>
+ <path
+ transform="translate(-26.116422,975.87571)"
+ d="m 121.78571,168.61218 c 0,3.45178 -2.79822,6.25 -6.25,6.25 -3.45178,0 -6.25,-2.79822 -6.25,-6.25 0,-3.45178 2.79822,-6.25 6.25,-6.25 3.45178,0 6.25,2.79822 6.25,6.25 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <text
+ id="text3617-91"
+ y="1194.0942"
+ x="159.44882"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1194.0942"
+ x="159.44882"
+ id="tspan3619-34"
+ sodipodi:role="line">(50,50)</tspan></text>
+ <text
+ id="text3617-6-5"
+ y="1194.0942"
+ x="341.56537"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1194.0942"
+ x="341.56537"
+ id="tspan3619-3-8"
+ sodipodi:role="line">(25,25)</tspan></text>
+ <g
+ transform="matrix(0.31250009,0,0,0.55421684,305.54374,827.21851)"
+ id="g5423">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect5337"
+ width="16"
+ height="480"
+ x="605"
+ y="577.35956" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341"
+ width="16"
+ height="9"
+ x="605"
+ y="567.35956" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-5"
+ width="16"
+ height="8.9999609"
+ x="605"
+ y="1058.3596" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 608,1060.3596 10,0 -5,5 -5,-5 z"
+ id="path5365"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 618,574.3596 -10,0 5,-5 5,5 z"
+ id="path5365-7"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ transform="matrix(0,0.31250009,-0.55421684,0,677.20953,1238.3707)"
+ id="g5423-3">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect5337-3"
+ width="16"
+ height="700.91309"
+ x="605"
+ y="356.44656" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-8"
+ width="16"
+ height="9"
+ x="605"
+ y="345.42477" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-5-9"
+ width="16"
+ height="8.9999609"
+ x="605"
+ y="1058.3596" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 608,1060.3596 10,0 -5,5 -5,-5 z"
+ id="path5365-5"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 618,352.42481 -10,0 5,-5 5,5 z"
+ id="path5365-7-5"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ transform="translate(-35.714287,466.11406)"
+ id="text5505"
+ style="font-size:21.70134163px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Anonymous Pro;-inkscape-font-specification:Anonymous Pro">
+ <path
+ id="path5510"
+ style="fill:#ff0000"
+ d="m 644.96058,578.7356 c -0.36029,1.1868 -0.95015,2.12987 -1.7696,2.82923 -0.81945,0.6923 -1.85083,1.03844 -3.09413,1.03844 -0.96781,0 -1.78726,-0.19779 -2.45836,-0.59339 -0.6711,-0.40266 -1.22211,-0.93248 -1.65303,-1.58946 -0.42385,-0.65697 -0.73115,-1.41637 -0.92188,-2.27821 -0.18367,-0.86183 -0.27551,-1.75546 -0.27551,-2.68088 0,-0.92541 0.0918,-1.81903 0.27551,-2.68088 0.19073,-0.86183 0.49803,-1.62476 0.92188,-2.28881 0.43092,-0.66403 0.98193,-1.19385 1.65303,-1.58946 0.6711,-0.40264 1.49055,-0.60398 2.45836,-0.60399 0.85477,10e-6 1.58591,0.1519 2.19344,0.45564 0.60752,0.30378 1.0561,0.76649 1.34574,1.38813 l 0,-1.61065 1.23978,0 0,4.53524 -1.23978,0 c -10e-6,-0.48742 -0.0954,-0.9466 -0.2861,-1.37752 -0.18368,-0.43798 -0.43446,-0.81591 -0.75234,-1.13381 -0.3179,-0.31788 -0.69584,-0.56513 -1.13381,-0.74175 -0.43093,-0.18366 -0.88657,-0.27549 -1.36693,-0.27551 -0.74882,2e-5 -1.37047,0.17662 -1.86496,0.52982 -0.48744,0.35323 -0.8795,0.81593 -1.1762,1.38813 -0.2967,0.57221 -0.50862,1.20799 -0.63578,1.90734 -0.12009,0.69937 -0.18014,1.39873 -0.18014,2.09808 0,0.6923 0.06,1.39166 0.18014,2.09808 0.12716,0.69936 0.33908,1.33161 0.63578,1.89675 0.2967,0.55807 0.68876,1.01725 1.1762,1.37752 0.49449,0.35322 1.11614,0.52982 1.86496,0.52982 1.72367,0 2.92459,-1.04197 3.60276,-3.12593 l 1.26097,0.49803" />
+ <path
+ id="path5512"
+ style="fill:#ff0000"
+ d="m 646.84673,579.68928 c 0,-0.62165 0.15541,-1.14087 0.46624,-1.55767 0.31082,-0.42385 0.71702,-0.75587 1.21858,-0.99606 0.50862,-0.24724 1.08789,-0.42385 1.7378,-0.52981 0.65697,-0.11303 1.32454,-0.16954 2.00271,-0.16955 0.26137,10e-6 0.49449,0.004 0.69936,0.0106 0.21192,0.007 0.40972,0.0177 0.5934,0.0318 0.19073,0.0141 0.38146,0.0318 0.5722,0.053 0.19073,0.0212 0.39912,0.0459 0.62519,0.0742 l 0,-0.70996 c -10e-6,-0.48036 -0.10597,-0.87596 -0.31789,-1.18679 -0.20487,-0.31082 -0.45919,-0.55454 -0.76294,-0.73115 -0.30377,-0.18366 -0.62166,-0.31082 -0.95367,-0.38147 -0.33203,-0.0777 -0.6146,-0.11655 -0.84771,-0.11656 -0.73469,10e-6 -1.41285,0.0989 -2.0345,0.2967 -0.62166,0.19781 -1.20092,0.46271 -1.73781,0.79472 l -0.65697,-1.09142 c 0.5934,-0.36027 1.25743,-0.65343 1.99212,-0.8795 0.74174,-0.23311 1.55412,-0.34967 2.43716,-0.34968 0.53687,10e-6 1.06316,0.0707 1.57886,0.21193 0.52274,0.13423 0.98898,0.34616 1.39871,0.63578 0.41679,0.28258 0.74881,0.65698 0.99606,1.12321 0.24724,0.46625 0.37087,1.02433 0.37088,1.67423 l 0,6.46378 -1.4623,0 0,-1.65303 c -0.25432,0.31789 -0.54396,0.59693 -0.8689,0.83711 -0.3179,0.24018 -0.65345,0.43798 -1.00666,0.59339 -0.35322,0.14835 -0.70643,0.26138 -1.05963,0.33909 -0.35322,0.0848 -0.68877,0.12715 -1.00666,0.12715 -1.30688,0 -2.29588,-0.25078 -2.96698,-0.75234 -0.6711,-0.50156 -1.00665,-1.22211 -1.00665,-2.16165 m 3.97363,1.67422 c 0.60752,0 1.15147,-0.0883 1.63184,-0.26491 0.48743,-0.18367 0.90069,-0.40972 1.23978,-0.67817 0.33907,-0.26843 0.60045,-0.55454 0.78413,-0.8583 0.19072,-0.30376 0.28609,-0.57926 0.2861,-0.82652 l 0,-0.93248 c -0.47331,-0.0706 -0.92896,-0.10949 -1.36693,-0.11656 -0.43093,-0.007 -0.80533,-0.0106 -1.12322,-0.0106 -0.52275,0 -1.02785,0.0353 -1.51528,0.10596 -0.48037,0.0707 -0.90069,0.18721 -1.26096,0.34968 -0.36028,0.15542 -0.64991,0.36028 -0.8689,0.61459 -0.219,0.25432 -0.32849,0.56867 -0.32849,0.94308 0,0.41679 0.20133,0.80179 0.60399,1.155 0.40973,0.34615 1.04904,0.51922 1.91794,0.51922" />
+ <path
+ id="path5514"
+ style="fill:#ff0000"
+ d="m 668.09243,582.35956 -1.4623,0 0,-6.09291 c -10e-6,-0.88302 -0.19074,-1.56825 -0.5722,-2.05569 -0.38148,-0.48743 -0.9996,-0.73114 -1.85437,-0.73115 -0.53688,10e-6 -1.02432,0.12363 -1.46229,0.37087 -0.43093,0.24726 -0.79827,0.57928 -1.10203,0.99606 -0.30376,0.40973 -0.53688,0.88304 -0.69936,1.41991 -0.15541,0.52983 -0.23312,1.08437 -0.23312,1.66363 l 0,4.42928 -1.4517,0 0,-9.87581 1.4517,0 0,2.47955 c 0.69936,-1.80844 1.9462,-2.71266 3.74052,-2.71267 2.43009,10e-6 3.64514,1.33868 3.64515,4.01602 l 0,6.09291" />
+ <path
+ id="path5516"
+ style="fill:#ff0000"
+ d="m 680.80806,572.48375 -4.28093,9.87581 -1.94973,0 -4.30212,-9.87581 1.7378,0 3.53918,8.65723 3.51799,-8.65723 1.73781,0" />
+ <path
+ id="path5518"
+ style="fill:#ff0000"
+ d="m 682.45049,579.68928 c 0,-0.62165 0.15541,-1.14087 0.46624,-1.55767 0.31083,-0.42385 0.71702,-0.75587 1.21858,-0.99606 0.50862,-0.24724 1.08789,-0.42385 1.7378,-0.52981 0.65697,-0.11303 1.32454,-0.16954 2.00272,-0.16955 0.26137,10e-6 0.49449,0.004 0.69936,0.0106 0.21192,0.007 0.40972,0.0177 0.59339,0.0318 0.19073,0.0141 0.38146,0.0318 0.57221,0.053 0.19072,0.0212 0.39912,0.0459 0.62518,0.0742 l 0,-0.70996 c -10e-6,-0.48036 -0.10597,-0.87596 -0.31789,-1.18679 -0.20487,-0.31082 -0.45918,-0.55454 -0.76294,-0.73115 -0.30377,-0.18366 -0.62166,-0.31082 -0.95367,-0.38147 -0.33203,-0.0777 -0.61459,-0.11655 -0.84771,-0.11656 -0.73468,10e-6 -1.41285,0.0989 -2.0345,0.2967 -0.62166,0.19781 -1.20092,0.46271 -1.7378,0.79472 l -0.65698,-1.09142 c 0.5934,-0.36027 1.25744,-0.65343 1.99212,-0.8795 0.74174,-0.23311 1.55413,-0.34967 2.43716,-0.34968 0.53688,10e-6 1.06316,0.0707 1.57886,0.21193 0.52274,0.13423 0.98898,0.34616 1.39872,0.63578 0.41678,0.28258 0.7488,0.65698 0.99606,1.12321 0.24723,0.46625 0.37086,1.02433 0.37087,1.67423 l 0,6.46378 -1.4623,0 0,-1.65303 c -0.25432,0.31789 -0.54395,0.59693 -0.8689,0.83711 -0.3179,0.24018 -0.65345,0.43798 -1.00666,0.59339 -0.35321,0.14835 -0.70642,0.26138 -1.05963,0.33909 -0.35322,0.0848 -0.68877,0.12715 -1.00665,0.12715 -1.30689,0 -2.29588,-0.25078 -2.96699,-0.75234 -0.6711,-0.50156 -1.00665,-1.22211 -1.00665,-2.16165 m 3.97364,1.67422 c 0.60752,0 1.15146,-0.0883 1.63183,-0.26491 0.48743,-0.18367 0.90069,-0.40972 1.23978,-0.67817 0.33907,-0.26843 0.60045,-0.55454 0.78413,-0.8583 0.19073,-0.30376 0.28609,-0.57926 0.2861,-0.82652 l 0,-0.93248 c -0.47331,-0.0706 -0.92895,-0.10949 -1.36693,-0.11656 -0.43092,-0.007 -0.80533,-0.0106 -1.12321,-0.0106 -0.52276,0 -1.02785,0.0353 -1.51528,0.10596 -0.48037,0.0707 -0.9007,0.18721 -1.26097,0.34968 -0.36028,0.15542 -0.64991,0.36028 -0.8689,0.61459 -0.21899,0.25432 -0.32849,0.56867 -0.32849,0.94308 0,0.41679 0.20133,0.80179 0.60399,1.155 0.40973,0.34615 1.04904,0.51922 1.91795,0.51922" />
+ <path
+ id="path5520"
+ style="fill:#ff0000"
+ d="m 703.9505,579.6257 c -1e-5,0.57927 -0.14483,1.05964 -0.43445,1.4411 -0.28964,0.38147 -0.66405,0.68523 -1.12321,0.91129 -0.45212,0.22606 -0.96075,0.385 -1.52588,0.47684 -0.55808,0.0989 -1.10556,0.14834 -1.64244,0.14834 -0.89716,0 -1.79078,-0.13068 -2.68087,-0.39206 -0.8901,-0.26138 -1.6601,-0.60399 -2.31001,-1.02785 l 0.64638,-1.25037 c 0.72761,0.45918 1.44463,0.81239 2.15106,1.05964 0.70642,0.24725 1.43757,0.37087 2.19344,0.37087 2.18285,0 3.27427,-0.56514 3.27428,-1.69542 -10e-6,-0.2755 -0.0918,-0.49802 -0.27551,-0.66757 -0.17661,-0.1766 -0.41679,-0.31788 -0.72055,-0.42385 -0.30377,-0.11303 -0.65345,-0.20133 -1.04904,-0.26491 -0.38854,-0.0636 -0.79826,-0.12362 -1.22918,-0.18014 -0.55101,-0.0777 -1.09849,-0.16954 -1.64243,-0.2755 -0.54395,-0.10596 -1.04198,-0.26491 -1.49409,-0.47684 -0.44505,-0.21192 -0.80532,-0.49449 -1.08083,-0.84771 -0.26844,-0.3532 -0.40266,-0.81944 -0.40266,-1.39872 0,-0.49449 0.12363,-0.92187 0.37087,-1.28216 0.25432,-0.36026 0.58987,-0.66049 1.00666,-0.90069 0.42385,-0.24017 0.91835,-0.41678 1.48349,-0.52982 0.56513,-0.11301 1.15147,-0.16953 1.75899,-0.16954 0.8689,10e-6 1.64597,0.10244 2.3312,0.3073 0.68523,0.19781 1.30335,0.48391 1.85437,0.8583 l -0.5828,1.13381 c -0.56515,-0.39559 -1.13735,-0.67109 -1.71661,-0.82651 -0.57928,-0.16247 -1.20799,-0.24371 -1.88616,-0.24372 -0.30376,10e-6 -0.64285,0.0283 -1.01725,0.0848 -0.36734,0.0495 -0.70995,0.14129 -1.02784,0.27551 -0.3179,0.12716 -0.58634,0.2967 -0.80533,0.50862 -0.21192,0.20487 -0.31789,0.46625 -0.31789,0.78413 0,0.27551 0.0883,0.49804 0.26491,0.66757 0.18367,0.16249 0.42739,0.30024 0.73115,0.41326 0.30376,0.10597 0.64991,0.19074 1.03844,0.25431 0.3956,0.0636 0.80886,0.12363 1.23978,0.18014 0.53687,0.0777 1.07729,0.16955 1.62124,0.27551 0.551,0.10597 1.04903,0.26138 1.49409,0.46624 0.4521,0.20486 0.81591,0.4839 1.09142,0.83711 0.2755,0.35321 0.41325,0.81945 0.41326,1.39872" />
+ </g>
+ <text
+ id="text3617-17-1-2"
+ y="1134.7777"
+ x="110.16586"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1134.7777"
+ x="110.16586"
+ id="tspan3619-93-6-1"
+ sodipodi:role="line">(25,25)</tspan></text>
+ <text
+ id="text3617-6-5-0"
+ y="1194.0942"
+ x="252.9827"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1194.0942"
+ x="252.9827"
+ id="tspan3619-3-8-5"
+ sodipodi:role="line">(50,50)</tspan></text>
+ <text
+ id="text3617-97"
+ y="1459.8422"
+ x="265.74802"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1459.8422"
+ x="265.74802"
+ id="tspan3619-38"
+ sodipodi:role="line">(250,250)</tspan></text>
+ <path
+ transform="translate(369.89736,1248.7104)"
+ d="m 121.78571,168.61218 c 0,3.45178 -2.79822,6.25 -6.25,6.25 -3.45178,0 -6.25,-2.79822 -6.25,-6.25 0,-3.45178 2.79822,-6.25 6.25,-6.25 3.45178,0 6.25,2.79822 6.25,6.25 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260-9"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <text
+ id="text3617-0"
+ y="1048.8186"
+ x="-3.5433071"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1048.8186"
+ x="-3.5433071"
+ id="tspan3619-9"
+ sodipodi:role="line">(0,0)</tspan></text>
+ <text
+ id="text3617-6-23"
+ y="1048.798"
+ x="116.92913"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1048.798"
+ x="116.92913"
+ id="tspan3619-3-18"
+ sodipodi:role="line">(-25,-25)</tspan></text>
+ <text
+ id="text3617-17-1-2-7"
+ y="1047.9772"
+ x="56.692913"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="1047.9772"
+ x="56.692913"
+ id="tspan3619-93-6-1-4"
+ sodipodi:role="line">(0,0)</tspan></text>
+ </g>
+ <g
+ id="g7060-6">
+ <rect
+ ry="0"
+ y="643.55304"
+ x="124.51575"
+ height="276.27328"
+ width="397.14288"
+ id="rect3603-4"
+ style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 8;stroke-dashoffset:0" />
+ <g
+ transform="matrix(2,0,0,2,28.990232,588.54083)"
+ id="g3611-8">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-5"
+ width="171.80283"
+ height="47.578693"
+ x="127.23717"
+ y="79.548332"
+ ry="5.5357141" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.69355583px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="174.38667"
+ y="95.336945"
+ id="text3605-6"><tspan
+ sodipodi:role="line"
+ id="tspan3607-2"
+ x="174.38667"
+ y="95.336945">KSM Node</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 126.42857,101.6479 172.14286,0"
+ id="path3609-52" />
+ </g>
+ <text
+ id="text3617-69"
+ y="638.2276"
+ x="54.220947"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="638.2276"
+ x="54.220947"
+ id="tspan3619-1"
+ sodipodi:role="line">(25,25)</tspan></text>
+ <a
+ transform="translate(-2.6383593,530.65868)"
+ id="a6562-3">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3621-3"
+ width="670"
+ height="440"
+ x="38.57143"
+ y="26.140238" />
+ </a>
+ <g
+ transform="matrix(0.7507518,0,0,0.7507518,94.880953,135.81282)"
+ id="text3648-1"
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Anonymous Pro;-inkscape-font-specification:Anonymous Pro">
+ <path
+ style="fill:#0000ff"
+ id="path5468-5"
+ d="m 476.51257,652.33069 -5.96093,17.8418 -2.54297,0 -5.90625,-17.8418 1.98242,0 5.20898,15.9414 5.18164,-15.9414 2.03711,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5470-2"
+ d="m 485.86414,654.88733 -2.54297,0 0,-2.55664 2.54297,0 0,2.55664 m 2.54296,15.28516 -7.64257,0 0,-1.59961 2.88476,0 0,-9.54297 -2.88476,0 0,-1.59961 4.77148,0 0,11.14258 2.87109,0 0,1.59961" />
+ <path
+ style="fill:#0000ff"
+ id="path5472-6"
+ d="m 495.4071,664.45764 c 0.13672,1.34896 0.62891,2.42448 1.47657,3.22656 0.84765,0.80209 1.95051,1.20313 3.30859,1.20313 0.95702,0 1.80924,-0.19596 2.55664,-0.58789 0.74739,-0.39193 1.30793,-0.87956 1.68164,-1.46289 l 1.3125,0.90234 c -0.63803,0.89323 -1.3991,1.57683 -2.2832,2.05078 -0.88412,0.46485 -1.97332,0.69727 -3.26758,0.69727 -0.98438,0 -1.88672,-0.16406 -2.70703,-0.49219 -0.82032,-0.32812 -1.53125,-0.78385 -2.13281,-1.36719 -0.59245,-0.59244 -1.05274,-1.29426 -1.38086,-2.10547 -0.32813,-0.81119 -0.49219,-1.71353 -0.49219,-2.70703 0,-0.96614 0.14583,-1.85481 0.4375,-2.66601 0.30078,-0.8203 0.72917,-1.52668 1.28516,-2.11914 0.5651,-0.60155 1.24869,-1.0664 2.05078,-1.39453 0.80208,-0.33723 1.69986,-0.50585 2.69336,-0.50586 1.08462,1e-5 2.03254,0.1823 2.84375,0.54687 0.81118,0.3646 1.48566,0.87046 2.02343,1.51758 0.54687,0.63803 0.94791,1.40366 1.20313,2.29687 0.26431,0.89324 0.39647,1.88217 0.39648,2.9668 l -11.00586,0 m 9.02344,-1.59961 c -0.20964,-1.39452 -0.7155,-2.43358 -1.51758,-3.11719 -0.80209,-0.68358 -1.79102,-1.02537 -2.96679,-1.02539 -0.60157,2e-5 -1.15756,0.10028 -1.66797,0.30079 -0.51042,0.19141 -0.96159,0.46941 -1.35352,0.83398 -0.39193,0.36459 -0.72005,0.80665 -0.98437,1.32617 -0.26433,0.51043 -0.43295,1.07097 -0.50586,1.68164 l 8.99609,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5474-9"
+ d="m 522.01257,657.4303 -2.58398,12.74219 -2.1875,0 -2.03711,-9.35157 -1.92773,9.35157 -2.1875,0 -2.61133,-12.74219 1.99609,0 1.8457,10.19922 1.98243,-10.19922 1.85937,0 2.03711,10.19922 1.8457,-10.19922 1.96875,0" />
+ <path
+ style="fill:#0000ff"
+ id="path5476-4"
+ d="m 536.90125,663.81506 c -2e-5,0.9935 -0.15497,1.89584 -0.46485,2.70703 -0.30991,0.81121 -0.74741,1.51303 -1.3125,2.10547 -0.556,0.58334 -1.23048,1.03907 -2.02344,1.36719 -0.79297,0.32813 -1.68164,0.49219 -2.66601,0.49219 -0.67449,0 -1.33074,-0.12305 -1.96875,-0.36914 -0.62891,-0.2461 -1.2168,-0.61068 -1.76367,-1.09375 l 0,6.24804 -1.87305,0 0,-17.84179 1.87305,0 0,1.17578 c 1.15754,-0.98436 2.40168,-1.47655 3.73242,-1.47656 0.98437,1e-5 1.87304,0.16407 2.66601,0.49218 0.79296,0.31903 1.46744,0.77931 2.02344,1.38086 0.56509,0.59246 1.00259,1.3034 1.3125,2.13282 0.30988,0.82032 0.46483,1.71354 0.46485,2.67968 m -1.87305,0 c -10e-6,-0.71093 -0.10027,-1.37629 -0.30078,-1.99609 -0.19142,-0.6289 -0.48309,-1.17121 -0.875,-1.62695 -0.39194,-0.45572 -0.87501,-0.81575 -1.44922,-1.08008 -0.56511,-0.26431 -1.22136,-0.39647 -1.96875,-0.39649 -0.71094,2e-5 -1.37631,0.13218 -1.9961,0.39649 -0.61068,0.26433 -1.18945,0.69272 -1.73632,1.28515 l 0,6.83594 c 0.54687,0.59245 1.12564,1.01628 1.73632,1.27149 0.61979,0.25521 1.28516,0.38281 1.9961,0.38281 0.74739,0 1.40364,-0.13216 1.96875,-0.39649 0.57421,-0.26432 1.05728,-0.62434 1.44922,-1.08007 0.39191,-0.45573 0.68358,-0.98893 0.875,-1.59961 0.20051,-0.61979 0.30077,-1.28515 0.30078,-1.9961" />
+ <path
+ style="fill:#0000ff"
+ id="path5478-4"
+ d="m 552.54187,663.84241 c -10e-6,0.99349 -0.15952,1.89583 -0.47852,2.70703 -0.3099,0.8112 -0.76108,1.50846 -1.35351,2.0918 -0.58335,0.57422 -1.28517,1.02539 -2.10547,1.35351 -0.82032,0.32813 -1.73634,0.49219 -2.74805,0.49219 -0.99349,0 -1.90039,-0.16406 -2.7207,-0.49219 -0.82032,-0.32812 -1.52669,-0.77929 -2.11914,-1.35351 -0.58333,-0.58334 -1.03451,-1.2806 -1.35352,-2.0918 -0.30989,-0.8112 -0.46484,-1.71354 -0.46484,-2.70703 0,-0.96614 0.15495,-1.86393 0.46484,-2.69336 0.31901,-0.83853 0.77019,-1.54947 1.35352,-2.13281 0.59245,-0.59244 1.29882,-1.05273 2.11914,-1.38086 0.82031,-0.33723 1.72721,-0.50585 2.7207,-0.50586 1.01171,1e-5 1.92773,0.16863 2.74805,0.50586 0.8203,0.32813 1.52212,0.78842 2.10547,1.38086 0.59243,0.58334 1.04361,1.29428 1.35351,2.13281 0.319,0.82943 0.47851,1.72722 0.47852,2.69336 m -1.87305,0 c -10e-6,-0.72916 -0.10938,-1.39908 -0.32812,-2.00977 -0.20965,-0.61978 -0.5241,-1.1621 -0.94336,-1.62695 -0.41928,-0.46483 -0.9297,-0.82942 -1.53125,-1.09375 -0.59246,-0.26431 -1.26238,-0.39647 -2.00977,-0.39649 -0.7474,2e-5 -1.42188,0.13218 -2.02343,0.39649 -0.59246,0.26433 -1.09376,0.62892 -1.50391,1.09375 -0.41016,0.46485 -0.72461,1.00717 -0.94336,1.62695 -0.20964,0.61069 -0.31445,1.28061 -0.31445,2.00977 0,0.72917 0.10481,1.40365 0.31445,2.02343 0.21875,0.61069 0.5332,1.13933 0.94336,1.58594 0.41015,0.44662 0.91145,0.79753 1.50391,1.05274 0.60155,0.25521 1.27603,0.38281 2.02343,0.38281 0.74739,0 1.41731,-0.1276 2.00977,-0.38281 0.60155,-0.25521 1.11197,-0.60612 1.53125,-1.05274 0.41926,-0.44661 0.73371,-0.97525 0.94336,-1.58594 0.21874,-0.61978 0.32811,-1.29426 0.32812,-2.02343" />
+ <path
+ style="fill:#0000ff"
+ id="path5480-6"
+ d="m 566.82898,659.22131 c -0.67449,-0.33722 -1.47657,-0.50584 -2.40625,-0.50586 -0.76563,2e-5 -1.44923,0.16408 -2.05078,0.49219 -0.60157,0.32814 -1.11199,0.76108 -1.53125,1.29883 -0.41928,0.52865 -0.74285,1.13933 -0.9707,1.83203 -0.21876,0.6836 -0.32813,1.38998 -0.32813,2.11914 l 0,4.11524 2.88477,0 0,1.59961 -7.64258,0 0,-1.59961 2.88476,0 0,-9.54297 -2.88476,0 0,-1.59961 4.75781,0 0,3.19922 c 0.85677,-2.33332 2.48372,-3.49999 4.88086,-3.5 0.64712,1e-5 1.20767,0.041 1.68164,0.12304 0.48306,0.082 0.92968,0.22788 1.33984,0.4375 l -0.61523,1.53125" />
+ <path
+ style="fill:#0000ff"
+ id="path5482-0"
+ d="m 582.97546,666.11194 c -0.14584,1.33984 -0.67449,2.40625 -1.58593,3.19922 -0.90236,0.78385 -2.03256,1.17578 -3.39063,1.17578 -0.7474,0 -1.43099,-0.12305 -2.05078,-0.36914 -0.6198,-0.2461 -1.14844,-0.58789 -1.58594,-1.02539 -0.4375,-0.4375 -0.7793,-0.96159 -1.02539,-1.57227 -0.23698,-0.61979 -0.35547,-1.29427 -0.35547,-2.02344 l 0,-6.46679 -2.88476,0 0,-1.59961 2.88476,0 0,-5.09961 1.87305,0 0,5.09961 5.42773,0 0,1.59961 -5.42773,0 0,6.46679 c 0,0.46485 0.0729,0.90235 0.21875,1.3125 0.15494,0.41016 0.36458,0.77019 0.62891,1.08008 0.27343,0.3099 0.60155,0.55599 0.98437,0.73828 0.38281,0.17318 0.82031,0.25977 1.3125,0.25977 0.92968,0 1.70442,-0.28711 2.32422,-0.86133 0.6289,-0.58333 0.98892,-1.33528 1.08008,-2.25586 l 1.57226,0.3418" />
+ </g>
+ <rect
+ y="743.02283"
+ x="523.18762"
+ height="104.87294"
+ width="114.60768"
+ id="rect3686-0"
+ style="fill:#ffffff;fill-opacity:0.81089741;fill-rule:evenodd;stroke:none" />
+ <text
+ id="text3617-6-0"
+ y="638.20697"
+ x="237.74922"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="638.20697"
+ x="237.74922"
+ id="tspan3619-3-2"
+ sodipodi:role="line">(0,0)</tspan></text>
+ <text
+ id="text3617-9-2"
+ y="962.45062"
+ x="425.69684"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="962.45062"
+ x="425.69684"
+ id="tspan3619-95-6"
+ sodipodi:role="line">(250,250)</tspan></text>
+ <text
+ id="text3617-6-2-9"
+ y="962.45062"
+ x="549.71265"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="962.45062"
+ x="549.71265"
+ id="tspan3619-3-1-0"
+ sodipodi:role="line">(200,200)</tspan></text>
+ <path
+ transform="translate(9.8166487,478.48416)"
+ d="m 121.78571,168.61218 c 0,3.45178 -2.79822,6.25 -6.25,6.25 -3.45178,0 -6.25,-2.79822 -6.25,-6.25 0,-3.45178 2.79822,-6.25 6.25,-6.25 3.45178,0 6.25,2.79822 6.25,6.25 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260-3"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <text
+ id="text3617-91-5"
+ y="742.76575"
+ x="269.79135"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="742.76575"
+ x="269.79135"
+ id="tspan3619-34-5"
+ sodipodi:role="line">(50,50)</tspan></text>
+ <text
+ id="text3617-6-5-8"
+ y="742.76575"
+ x="485.03101"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="742.76575"
+ x="485.03101"
+ id="tspan3619-3-8-7"
+ sodipodi:role="line">(100,100)</tspan></text>
+ <g
+ transform="matrix(0.31250009,0,0,0.55421684,341.47681,329.82696)"
+ id="g5423-1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect5337-7"
+ width="16"
+ height="480"
+ x="605"
+ y="577.35956" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-0"
+ width="16"
+ height="9"
+ x="605"
+ y="567.35956" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-5-6"
+ width="16"
+ height="8.9999609"
+ x="605"
+ y="1058.3596" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 608,1060.3596 10,0 -5,5 -5,-5 z"
+ id="path5365-0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 618,574.3596 -10,0 5,-5 5,5 z"
+ id="path5365-7-4"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ transform="matrix(0,0.31250009,-0.55421684,0,713.1426,740.97918)"
+ id="g5423-3-1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect5337-3-3"
+ width="16"
+ height="700.91309"
+ x="605"
+ y="356.44656" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-8-0"
+ width="16"
+ height="9"
+ x="605"
+ y="345.42477" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5341-5-9-2"
+ width="16"
+ height="8.9999609"
+ x="605"
+ y="1058.3596" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 608,1060.3596 10,0 -5,5 -5,-5 z"
+ id="path5365-5-9"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 618,352.42481 -10,0 5,-5 5,5 z"
+ id="path5365-7-5-6"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ transform="translate(0.21878366,-31.277496)"
+ id="text5505-0"
+ style="font-size:21.70134163px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Anonymous Pro;-inkscape-font-specification:Anonymous Pro">
+ <path
+ id="path5510-9"
+ style="fill:#ff0000"
+ d="m 644.96058,578.7356 c -0.36029,1.1868 -0.95015,2.12987 -1.7696,2.82923 -0.81945,0.6923 -1.85083,1.03844 -3.09413,1.03844 -0.96781,0 -1.78726,-0.19779 -2.45836,-0.59339 -0.6711,-0.40266 -1.22211,-0.93248 -1.65303,-1.58946 -0.42385,-0.65697 -0.73115,-1.41637 -0.92188,-2.27821 -0.18367,-0.86183 -0.27551,-1.75546 -0.27551,-2.68088 0,-0.92541 0.0918,-1.81903 0.27551,-2.68088 0.19073,-0.86183 0.49803,-1.62476 0.92188,-2.28881 0.43092,-0.66403 0.98193,-1.19385 1.65303,-1.58946 0.6711,-0.40264 1.49055,-0.60398 2.45836,-0.60399 0.85477,10e-6 1.58591,0.1519 2.19344,0.45564 0.60752,0.30378 1.0561,0.76649 1.34574,1.38813 l 0,-1.61065 1.23978,0 0,4.53524 -1.23978,0 c -10e-6,-0.48742 -0.0954,-0.9466 -0.2861,-1.37752 -0.18368,-0.43798 -0.43446,-0.81591 -0.75234,-1.13381 -0.3179,-0.31788 -0.69584,-0.56513 -1.13381,-0.74175 -0.43093,-0.18366 -0.88657,-0.27549 -1.36693,-0.27551 -0.74882,2e-5 -1.37047,0.17662 -1.86496,0.52982 -0.48744,0.35323 -0.8795,0.81593 -1.1762,1.38813 -0.2967,0.57221 -0.50862,1.20799 -0.63578,1.90734 -0.12009,0.69937 -0.18014,1.39873 -0.18014,2.09808 0,0.6923 0.06,1.39166 0.18014,2.09808 0.12716,0.69936 0.33908,1.33161 0.63578,1.89675 0.2967,0.55807 0.68876,1.01725 1.1762,1.37752 0.49449,0.35322 1.11614,0.52982 1.86496,0.52982 1.72367,0 2.92459,-1.04197 3.60276,-3.12593 l 1.26097,0.49803" />
+ <path
+ id="path5512-3"
+ style="fill:#ff0000"
+ d="m 646.84673,579.68928 c 0,-0.62165 0.15541,-1.14087 0.46624,-1.55767 0.31082,-0.42385 0.71702,-0.75587 1.21858,-0.99606 0.50862,-0.24724 1.08789,-0.42385 1.7378,-0.52981 0.65697,-0.11303 1.32454,-0.16954 2.00271,-0.16955 0.26137,10e-6 0.49449,0.004 0.69936,0.0106 0.21192,0.007 0.40972,0.0177 0.5934,0.0318 0.19073,0.0141 0.38146,0.0318 0.5722,0.053 0.19073,0.0212 0.39912,0.0459 0.62519,0.0742 l 0,-0.70996 c -10e-6,-0.48036 -0.10597,-0.87596 -0.31789,-1.18679 -0.20487,-0.31082 -0.45919,-0.55454 -0.76294,-0.73115 -0.30377,-0.18366 -0.62166,-0.31082 -0.95367,-0.38147 -0.33203,-0.0777 -0.6146,-0.11655 -0.84771,-0.11656 -0.73469,10e-6 -1.41285,0.0989 -2.0345,0.2967 -0.62166,0.19781 -1.20092,0.46271 -1.73781,0.79472 l -0.65697,-1.09142 c 0.5934,-0.36027 1.25743,-0.65343 1.99212,-0.8795 0.74174,-0.23311 1.55412,-0.34967 2.43716,-0.34968 0.53687,10e-6 1.06316,0.0707 1.57886,0.21193 0.52274,0.13423 0.98898,0.34616 1.39871,0.63578 0.41679,0.28258 0.74881,0.65698 0.99606,1.12321 0.24724,0.46625 0.37087,1.02433 0.37088,1.67423 l 0,6.46378 -1.4623,0 0,-1.65303 c -0.25432,0.31789 -0.54396,0.59693 -0.8689,0.83711 -0.3179,0.24018 -0.65345,0.43798 -1.00666,0.59339 -0.35322,0.14835 -0.70643,0.26138 -1.05963,0.33909 -0.35322,0.0848 -0.68877,0.12715 -1.00666,0.12715 -1.30688,0 -2.29588,-0.25078 -2.96698,-0.75234 -0.6711,-0.50156 -1.00665,-1.22211 -1.00665,-2.16165 m 3.97363,1.67422 c 0.60752,0 1.15147,-0.0883 1.63184,-0.26491 0.48743,-0.18367 0.90069,-0.40972 1.23978,-0.67817 0.33907,-0.26843 0.60045,-0.55454 0.78413,-0.8583 0.19072,-0.30376 0.28609,-0.57926 0.2861,-0.82652 l 0,-0.93248 c -0.47331,-0.0706 -0.92896,-0.10949 -1.36693,-0.11656 -0.43093,-0.007 -0.80533,-0.0106 -1.12322,-0.0106 -0.52275,0 -1.02785,0.0353 -1.51528,0.10596 -0.48037,0.0707 -0.90069,0.18721 -1.26096,0.34968 -0.36028,0.15542 -0.64991,0.36028 -0.8689,0.61459 -0.219,0.25432 -0.32849,0.56867 -0.32849,0.94308 0,0.41679 0.20133,0.80179 0.60399,1.155 0.40973,0.34615 1.04904,0.51922 1.91794,0.51922" />
+ <path
+ id="path5514-5"
+ style="fill:#ff0000"
+ d="m 668.09243,582.35956 -1.4623,0 0,-6.09291 c -10e-6,-0.88302 -0.19074,-1.56825 -0.5722,-2.05569 -0.38148,-0.48743 -0.9996,-0.73114 -1.85437,-0.73115 -0.53688,10e-6 -1.02432,0.12363 -1.46229,0.37087 -0.43093,0.24726 -0.79827,0.57928 -1.10203,0.99606 -0.30376,0.40973 -0.53688,0.88304 -0.69936,1.41991 -0.15541,0.52983 -0.23312,1.08437 -0.23312,1.66363 l 0,4.42928 -1.4517,0 0,-9.87581 1.4517,0 0,2.47955 c 0.69936,-1.80844 1.9462,-2.71266 3.74052,-2.71267 2.43009,10e-6 3.64514,1.33868 3.64515,4.01602 l 0,6.09291" />
+ <path
+ id="path5516-4"
+ style="fill:#ff0000"
+ d="m 680.80806,572.48375 -4.28093,9.87581 -1.94973,0 -4.30212,-9.87581 1.7378,0 3.53918,8.65723 3.51799,-8.65723 1.73781,0" />
+ <path
+ id="path5518-3"
+ style="fill:#ff0000"
+ d="m 682.45049,579.68928 c 0,-0.62165 0.15541,-1.14087 0.46624,-1.55767 0.31083,-0.42385 0.71702,-0.75587 1.21858,-0.99606 0.50862,-0.24724 1.08789,-0.42385 1.7378,-0.52981 0.65697,-0.11303 1.32454,-0.16954 2.00272,-0.16955 0.26137,10e-6 0.49449,0.004 0.69936,0.0106 0.21192,0.007 0.40972,0.0177 0.59339,0.0318 0.19073,0.0141 0.38146,0.0318 0.57221,0.053 0.19072,0.0212 0.39912,0.0459 0.62518,0.0742 l 0,-0.70996 c -10e-6,-0.48036 -0.10597,-0.87596 -0.31789,-1.18679 -0.20487,-0.31082 -0.45918,-0.55454 -0.76294,-0.73115 -0.30377,-0.18366 -0.62166,-0.31082 -0.95367,-0.38147 -0.33203,-0.0777 -0.61459,-0.11655 -0.84771,-0.11656 -0.73468,10e-6 -1.41285,0.0989 -2.0345,0.2967 -0.62166,0.19781 -1.20092,0.46271 -1.7378,0.79472 l -0.65698,-1.09142 c 0.5934,-0.36027 1.25744,-0.65343 1.99212,-0.8795 0.74174,-0.23311 1.55413,-0.34967 2.43716,-0.34968 0.53688,10e-6 1.06316,0.0707 1.57886,0.21193 0.52274,0.13423 0.98898,0.34616 1.39872,0.63578 0.41678,0.28258 0.7488,0.65698 0.99606,1.12321 0.24723,0.46625 0.37086,1.02433 0.37087,1.67423 l 0,6.46378 -1.4623,0 0,-1.65303 c -0.25432,0.31789 -0.54395,0.59693 -0.8689,0.83711 -0.3179,0.24018 -0.65345,0.43798 -1.00666,0.59339 -0.35321,0.14835 -0.70642,0.26138 -1.05963,0.33909 -0.35322,0.0848 -0.68877,0.12715 -1.00665,0.12715 -1.30689,0 -2.29588,-0.25078 -2.96699,-0.75234 -0.6711,-0.50156 -1.00665,-1.22211 -1.00665,-2.16165 m 3.97364,1.67422 c 0.60752,0 1.15146,-0.0883 1.63183,-0.26491 0.48743,-0.18367 0.90069,-0.40972 1.23978,-0.67817 0.33907,-0.26843 0.60045,-0.55454 0.78413,-0.8583 0.19073,-0.30376 0.28609,-0.57926 0.2861,-0.82652 l 0,-0.93248 c -0.47331,-0.0706 -0.92895,-0.10949 -1.36693,-0.11656 -0.43092,-0.007 -0.80533,-0.0106 -1.12321,-0.0106 -0.52276,0 -1.02785,0.0353 -1.51528,0.10596 -0.48037,0.0707 -0.9007,0.18721 -1.26097,0.34968 -0.36028,0.15542 -0.64991,0.36028 -0.8689,0.61459 -0.21899,0.25432 -0.32849,0.56867 -0.32849,0.94308 0,0.41679 0.20133,0.80179 0.60399,1.155 0.40973,0.34615 1.04904,0.51922 1.91795,0.51922" />
+ <path
+ id="path5520-6"
+ style="fill:#ff0000"
+ d="m 703.9505,579.6257 c -1e-5,0.57927 -0.14483,1.05964 -0.43445,1.4411 -0.28964,0.38147 -0.66405,0.68523 -1.12321,0.91129 -0.45212,0.22606 -0.96075,0.385 -1.52588,0.47684 -0.55808,0.0989 -1.10556,0.14834 -1.64244,0.14834 -0.89716,0 -1.79078,-0.13068 -2.68087,-0.39206 -0.8901,-0.26138 -1.6601,-0.60399 -2.31001,-1.02785 l 0.64638,-1.25037 c 0.72761,0.45918 1.44463,0.81239 2.15106,1.05964 0.70642,0.24725 1.43757,0.37087 2.19344,0.37087 2.18285,0 3.27427,-0.56514 3.27428,-1.69542 -10e-6,-0.2755 -0.0918,-0.49802 -0.27551,-0.66757 -0.17661,-0.1766 -0.41679,-0.31788 -0.72055,-0.42385 -0.30377,-0.11303 -0.65345,-0.20133 -1.04904,-0.26491 -0.38854,-0.0636 -0.79826,-0.12362 -1.22918,-0.18014 -0.55101,-0.0777 -1.09849,-0.16954 -1.64243,-0.2755 -0.54395,-0.10596 -1.04198,-0.26491 -1.49409,-0.47684 -0.44505,-0.21192 -0.80532,-0.49449 -1.08083,-0.84771 -0.26844,-0.3532 -0.40266,-0.81944 -0.40266,-1.39872 0,-0.49449 0.12363,-0.92187 0.37087,-1.28216 0.25432,-0.36026 0.58987,-0.66049 1.00666,-0.90069 0.42385,-0.24017 0.91835,-0.41678 1.48349,-0.52982 0.56513,-0.11301 1.15147,-0.16953 1.75899,-0.16954 0.8689,10e-6 1.64597,0.10244 2.3312,0.3073 0.68523,0.19781 1.30335,0.48391 1.85437,0.8583 l -0.5828,1.13381 c -0.56515,-0.39559 -1.13735,-0.67109 -1.71661,-0.82651 -0.57928,-0.16247 -1.20799,-0.24371 -1.88616,-0.24372 -0.30376,10e-6 -0.64285,0.0283 -1.01725,0.0848 -0.36734,0.0495 -0.70995,0.14129 -1.02784,0.27551 -0.3179,0.12716 -0.58634,0.2967 -0.80533,0.50862 -0.21192,0.20487 -0.31789,0.46625 -0.31789,0.78413 0,0.27551 0.0883,0.49804 0.26491,0.66757 0.18367,0.16249 0.42739,0.30024 0.73115,0.41326 0.30376,0.10597 0.64991,0.19074 1.03844,0.25431 0.3956,0.0636 0.80886,0.12363 1.23978,0.18014 0.53687,0.0777 1.07729,0.16955 1.62124,0.27551 0.551,0.10597 1.04903,0.26138 1.49409,0.46624 0.4521,0.20486 0.81591,0.4839 1.09142,0.83711 0.2755,0.35321 0.41325,0.81945 0.41326,1.39872" />
+ </g>
+ <text
+ id="text3617-17-1-2-4"
+ y="637.38617"
+ x="146.09894"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="637.38617"
+ x="146.09894"
+ id="tspan3619-93-6-1-3"
+ sodipodi:role="line">(50,50)</tspan></text>
+ <text
+ id="text3617-6-5-0-1"
+ y="742.76575"
+ x="363.3252"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="742.76575"
+ x="363.3252"
+ id="tspan3619-3-8-5-9"
+ sodipodi:role="line">(100,100)</tspan></text>
+ <text
+ id="text3617-97-1"
+ y="962.45062"
+ x="301.68106"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="962.45062"
+ x="301.68106"
+ id="tspan3619-38-0"
+ sodipodi:role="line">(250,250)</tspan></text>
+ <path
+ transform="translate(405.83043,751.31888)"
+ d="m 121.78571,168.61218 c 0,3.45178 -2.79822,6.25 -6.25,6.25 -3.45178,0 -6.25,-2.79822 -6.25,-6.25 0,-3.45178 2.79822,-6.25 6.25,-6.25 3.45178,0 6.25,2.79822 6.25,6.25 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260-9-9"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <text
+ id="text3617-0-4"
+ y="552.75555"
+ x="31.889761"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="552.75555"
+ x="31.889761"
+ id="tspan3619-9-5"
+ sodipodi:role="line">(0,0)</tspan></text>
+ <text
+ id="text3617-6-23-6"
+ y="551.40643"
+ x="152.8622"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="551.40643"
+ x="152.8622"
+ id="tspan3619-3-18-2"
+ sodipodi:role="line">(-25,-25)</tspan></text>
+ <text
+ id="text3617-17-1-2-7-5"
+ y="550.58563"
+ x="92.625984"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="550.58563"
+ x="92.625984"
+ id="tspan3619-93-6-1-4-9"
+ sodipodi:role="line">(0,0)</tspan></text>
+ <path
+ transform="translate(167.92885,581.73203)"
+ d="m 121.78571,168.61218 a 6.25,6.25 0 1 1 -12.5,0 6.25,6.25 0 1 1 12.5,0 z"
+ sodipodi:ry="6.25"
+ sodipodi:rx="6.25"
+ sodipodi:cy="168.61218"
+ sodipodi:cx="115.53571"
+ id="path5260-3-1"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g4272"
+ transform="translate(-609.4488,-485.43307)">
+ <g
+ transform="translate(611.03086,6.5687638)"
+ id="g3308">
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="170.85327"
+ y="485.95062"
+ id="text6951"><tspan
+ sodipodi:role="line"
+ id="tspan6953"
+ x="170.85327"
+ y="485.95062">Real</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="257.07938"
+ y="485.95062"
+ id="text6955"><tspan
+ sodipodi:role="line"
+ id="tspan6957"
+ x="257.07938"
+ y="485.95062">Transformiert</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="441.33133"
+ y="485.95062"
+ id="text6959"><tspan
+ sodipodi:role="line"
+ id="tspan6961"
+ x="441.33133"
+ y="485.95062">Sichtbereich</tspan></text>
+ </g>
+ <rect
+ y="461.53601"
+ x="743.76074"
+ height="40.706882"
+ width="477.77383"
+ id="rect3316"
+ style="fill:none;stroke:#000000;stroke-width:1.81277609;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:21.75331234, 1.81277604;stroke-dashoffset:0" />
+ </g>
+ </g>
+</svg>
diff --git a/images/uml-datamodel.png b/images/uml-datamodel.png
new file mode 100644
index 0000000..6f220fb
--- /dev/null
+++ b/images/uml-datamodel.png
Binary files differ
diff --git a/images/uml-editor-outline.png b/images/uml-editor-outline.png
new file mode 100644
index 0000000..03b8da4
--- /dev/null
+++ b/images/uml-editor-outline.png
Binary files differ
diff --git a/images/uml-gef.plantuml b/images/uml-gef.plantuml
new file mode 100644
index 0000000..d044c60
--- /dev/null
+++ b/images/uml-gef.plantuml
@@ -0,0 +1,26 @@
+@startuml img/classes01.png
+
+package "Model" #dddddd {
+ Element <-- Connection
+ Element <- Node
+ Element <- NodeProperties
+ Element <- Diagram
+ Node *-- NodeProperties
+ Diagram *-- Node
+ Diagram *-- Connection
+}
+DiagramEditor o-- "1" Diagram
+DiagramEditor *-- PartFactory
+
+package "Controller" #DDDDDD {
+ PartFactory o-- ConnectionEditPart
+ PartFactory o-- KSMNodeEditPart
+}
+PartFactory:createEditPart(context, model)
+
+package "View" #dddddd {
+ KSMNodeEditPart *-- KSMNodeFigure
+ ConnectionEditPart *-- RoundedPolygone
+}
+
+@enduml \ No newline at end of file
diff --git a/images/uml-gef.png b/images/uml-gef.png
new file mode 100644
index 0000000..5a7ed90
--- /dev/null
+++ b/images/uml-gef.png
Binary files differ
diff --git a/images/uml_editorpart.png b/images/uml_editorpart.png
new file mode 100644
index 0000000..385b389
--- /dev/null
+++ b/images/uml_editorpart.png
Binary files differ
diff --git a/images/uml_editorport.zargo b/images/uml_editorport.zargo
new file mode 100644
index 0000000..69016b8
--- /dev/null
+++ b/images/uml_editorport.zargo
Binary files differ
diff --git a/images/xmlschema-arch.png b/images/xmlschema-arch.png
new file mode 100644
index 0000000..4747ae1
--- /dev/null
+++ b/images/xmlschema-arch.png
Binary files differ
diff --git a/images/xmlschema-arch.svg b/images/xmlschema-arch.svg
new file mode 100644
index 0000000..1203429
--- /dev/null
+++ b/images/xmlschema-arch.svg
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="497.54285"
+ height="404.68573"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="xmlschema-arch.svg"
+ inkscape:export-filename="/home/yvesf/vcs/ksmrcp/documentation-i08005-2/images/xmlschema-arch.png"
+ inkscape:export-xdpi="32.029999"
+ inkscape:export-ydpi="32.029999">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2830"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2858"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2880"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2907"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2938"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2966"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2992"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3834"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3869"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3917"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3946"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3946-7"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3999"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="327.47385"
+ inkscape:cy="237.78901"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1436"
+ inkscape:window-height="864"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-129.80002,-91.447903)">
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816"
+ width="497.14285"
+ height="64.285713"
+ x="130.00002"
+ y="258.07648" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="377.70844"
+ y="283.51233"
+ id="text2818"><tspan
+ sodipodi:role="line"
+ id="tspan2820"
+ x="377.70844"
+ y="283.51233">ksm-xmlschema.jar</tspan><tspan
+ sodipodi:role="line"
+ x="377.70844"
+ y="306.02567"
+ id="tspan3011"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier New;-inkscape-font-specification:Courier New">de.dhbw.horb.ksm.xmlschema.{api,impl}</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-1"
+ width="234.28569"
+ height="64.285721"
+ x="130.00002"
+ y="174.50505" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="246.23061"
+ y="202.55186"
+ id="text2818-9"
+ inkscape:transform-center-x="-12.857143"><tspan
+ sodipodi:role="line"
+ id="tspan2820-4"
+ x="246.23061"
+ y="202.55186">Eclipse RCP</tspan><tspan
+ sodipodi:role="line"
+ x="246.23061"
+ y="226.56572"
+ id="tspan2897">Model</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.60733807;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-1-7"
+ width="234.07835"
+ height="148.33377"
+ x="392.96085"
+ y="91.781891" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="509.92966"
+ y="213.3764"
+ id="text2818-9-8"><tspan
+ sodipodi:role="line"
+ id="tspan2820-4-4"
+ x="509.92966"
+ y="213.3764">KSM/Swing</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-1-5"
+ width="234.28569"
+ height="64.285721"
+ x="130.00002"
+ y="91.647903" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="246.53313"
+ y="130.02873"
+ id="text2818-9-0"
+ inkscape:transform-center-x="-12.857143"><tspan
+ sodipodi:role="line"
+ x="246.53313"
+ y="130.02873"
+ id="tspan2897-6">KSM/RCP</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-10"
+ width="497.14285"
+ height="64.285713"
+ x="130.00002"
+ y="345.93362" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="378.76843"
+ y="371.36948"
+ id="text2818-6"><tspan
+ sodipodi:role="line"
+ id="tspan2820-3"
+ x="378.76843"
+ y="371.36948">xjc generated Classes</tspan><tspan
+ sodipodi:role="line"
+ x="378.76843"
+ y="395.38333"
+ id="tspan3009"
+ style="-inkscape-font-specification:Courier New;font-family:Courier New;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">de.dhbw.horb.ksm.xmlschema.generated</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#a40000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2816-10-2"
+ width="497.14285"
+ height="64.285713"
+ x="130.00002"
+ y="431.64792" />
+ <text
+ xml:space="preserve"
+ style="font-size:144px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="194.28571"
+ y="455.21933"
+ id="text2980"><tspan
+ sodipodi:role="line"
+ id="tspan2982"
+ x="194.28571"
+ y="455.21933"></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:19.21108246px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="379.16241"
+ y="470.95273"
+ id="text2818-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan2820-3-6"
+ x="379.16241"
+ y="470.95273">XML-Schema (<tspan
+ style="font-size:19.21099999999999852;-inkscape-font-specification:Courier New;font-family:Courier New;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+ id="tspan4025">ksm-1.0.xsd</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:oblique;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Oblique;font-stretch:normal;font-variant:normal;writing-mode:lr;line-height:125%"
+ x="176.34482"
+ y="337.76346"
+ id="text3013-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3015-5"
+ x="176.34482"
+ y="337.76346">Use</tspan></text>
+ <g
+ id="g3857"
+ transform="translate(55.600443,-95.026129)">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path3017-5"
+ d="m 147.04906,399.00192 c 0,0 -14.82367,7.47351 -2.89396,33.897 3.45765,7.65847 6.46602,11.02615 6.46602,11.02615"
+ style="fill:none;stroke:#000000;stroke-width:2.29190302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3039-4"
+ d="m 138.41615,447.3528 c 0.003,-0.0324 23.34543,-9.54791 22.93062,-9.37893 -1.73287,4.03177 -4.62816,6.77367 -5.58524,13.51779 -5.81933,-2.74779 -11.57835,-2.6991 -17.34538,-4.13886 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.01446982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <g
+ id="g3857-5"
+ transform="matrix(-1,0,0,-1,659.70232,853.15848)">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path3017-5-6"
+ d="m 147.04906,399.00192 c 0,0 -14.82367,7.47351 -2.89396,33.897 3.45765,7.65847 6.46602,11.02615 6.46602,11.02615"
+ style="fill:none;stroke:#000000;stroke-width:2.29190302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3039-4-9"
+ d="m 138.41615,447.3528 c 0.003,-0.0324 23.34543,-9.54791 22.93062,-9.37893 -1.73287,4.03177 -4.62816,6.77367 -5.58524,13.51779 -5.81933,-2.74779 -11.57835,-2.6991 -17.34538,-4.13886 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.01446982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Oblique"
+ x="553.72351"
+ y="421.53741"
+ id="text3013-1-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3015-5-7"
+ x="553.72351"
+ y="421.53741">Compiled</tspan><tspan
+ sodipodi:role="line"
+ x="553.72351"
+ y="437.78741"
+ id="tspan3934">with</tspan><tspan
+ sodipodi:role="line"
+ x="553.72351"
+ y="454.03741"
+ id="tspan3936">xjc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:oblique;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Oblique;font-stretch:normal;font-variant:normal;writing-mode:lr;line-height:125%"
+ x="216.01836"
+ y="263.80185"
+ id="text3013-1-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3015-5-5"
+ x="216.01836"
+ y="263.80185">extend</tspan></text>
+ <g
+ id="g3857-2"
+ transform="translate(112.44657,-168.98774)">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path3017-5-5"
+ d="m 147.04906,399.00192 c 0,0 -14.82367,7.47351 -2.89396,33.897 3.45765,7.65847 6.46602,11.02615 6.46602,11.02615"
+ style="fill:none;stroke:#000000;stroke-width:2.29190302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3039-4-4"
+ d="m 138.41615,447.3528 c 0.003,-0.0324 23.34543,-9.54791 22.93062,-9.37893 -1.73287,4.03177 -4.62816,6.77367 -5.58524,13.51779 -5.81933,-2.74779 -11.57835,-2.6991 -17.34538,-4.13886 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.01446982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:oblique;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Oblique;font-stretch:normal;font-variant:normal;writing-mode:lr;line-height:125%"
+ x="182.6833"
+ y="165.81705"
+ id="text3013-1-44"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3015-5-3"
+ x="182.6833"
+ y="165.81705">Use</tspan></text>
+ <g
+ id="g3857-0"
+ transform="translate(61.938948,-266.97253)">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path3017-5-7"
+ d="m 147.04906,399.00192 c 0,0 -14.82367,7.47351 -2.89396,33.897 3.45765,7.65847 6.46602,11.02615 6.46602,11.02615"
+ style="fill:none;stroke:#000000;stroke-width:2.29190302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3039-4-8"
+ d="m 138.41615,447.3528 c 0.003,-0.0324 23.34543,-9.54791 22.93062,-9.37893 -1.73287,4.03177 -4.62816,6.77367 -5.58524,13.51779 -5.81933,-2.74779 -11.57835,-2.6991 -17.34538,-4.13886 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.01446982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:oblique;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Oblique;font-stretch:normal;font-variant:normal;writing-mode:lr;line-height:125%"
+ x="532.19604"
+ y="255.72061"
+ id="text3013-1-44-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3015-5-3-8"
+ x="532.19604"
+ y="255.72061">Use</tspan></text>
+ <g
+ id="g3857-0-8"
+ transform="matrix(-1.1463638,0,0,1,664.97243,-172.01819)">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path3017-5-7-4"
+ d="m 147.04906,399.00192 c 0,0 -14.82367,7.47351 -2.89396,33.897 3.45765,7.65847 6.46602,11.02615 6.46602,11.02615"
+ style="fill:none;stroke:#000000;stroke-width:2.29190302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3039-4-8-3"
+ d="m 138.41615,447.3528 c 0.003,-0.0324 23.34543,-9.54791 22.93062,-9.37893 -1.73287,4.03177 -4.62816,6.77367 -5.58524,13.51779 -5.81933,-2.74779 -11.57835,-2.6991 -17.34538,-4.13886 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.01446982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ </g>
+</svg>
diff --git a/images/zest-arch.ep b/images/zest-arch.ep
new file mode 100644
index 0000000..b22090f
--- /dev/null
+++ b/images/zest-arch.ep
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">zest-arch</Property><Property name="id">1287051392413_6764</Property><Property name="width">273</Property><Property name="height">260</Property><Property name="dimBackground">false</Property><Property name="backgroundColor">#FFFFFFFF</Property></Properties><Content><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="e1aacea1fb0c47ae9e72ee8b136f30a7" transform="matrix(1, 0, 0, 1, 11, 10)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Zest]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="83713648b0654dbc83aa7c728f332546" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="15715eb16f0b4e3db325a2f8ebb5b59a">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#83713648b0654dbc83aa7c728f332546" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#15715eb16f0b4e3db325a2f8ebb5b59a)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="a05d9a902f3b4867aac3088b37bb89e3"/>
+ <use xlink:href="#83713648b0654dbc83aa7c728f332546" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="b7f51a48630b450db5f42e7c2b304d23" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Zest</div></foreignObject><path id="b7f51a48630b450db5f42e7c2b304d23_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="3281f36e3b544c1cb2cc8c4a5a88da60" transform="matrix(1, 0, 0, 1, 11, 62)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Draw2d]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="81dc0ff75bf7431495f83556b0038303" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="2e9f54d845df452690303557bef7be9e">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#81dc0ff75bf7431495f83556b0038303" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#2e9f54d845df452690303557bef7be9e)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="7c159d4e5695455dae7c76a89ec10e4c"/>
+ <use xlink:href="#81dc0ff75bf7431495f83556b0038303" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="fa0b9abb3a654ed3b832d53504ff2f10" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Draw2d</div></foreignObject><path id="fa0b9abb3a654ed3b832d53504ff2f10_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="7383ced4b1f24b42a5f12a363f7ffc9c" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="bdd97dd6eefd42cf83a98c91efd224d3" transform="matrix(1, 0, 0, 1, 10, 113)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[SWT-Canvas]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="c3fb43b9a8a14446a5fc4ea0b4ccde85" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="051fe29868de42bcbab66dfb6a2288ea">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#c3fb43b9a8a14446a5fc4ea0b4ccde85" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#051fe29868de42bcbab66dfb6a2288ea)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="d259fc84f18e41f1b7806afe60106b28"/>
+ <use xlink:href="#c3fb43b9a8a14446a5fc4ea0b4ccde85" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="8d61d03b87614dae9771cb1b172852b0" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">SWT-Canvas</div></foreignObject><path id="8d61d03b87614dae9771cb1b172852b0_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="ede488462ba54e6da915abe79632bd5c" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="501acce8b876431fb72fe1ff4cc558d4" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="f11594d724ab436883be10b9320e2631" transform="matrix(1, 0, 0, 1, 11, 213)"><p:metadata><p:property name="box"><![CDATA[252,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#7CCC54FF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Hardware]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="252" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(124, 204, 84); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="09a7fd5ddb594a2ca140e1549b52676c" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="7e3845707bb0493585f2015e20749338">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#09a7fd5ddb594a2ca140e1549b52676c" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#7e3845707bb0493585f2015e20749338)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="f7e926d371e04437b376d6bba1c5ffed"/>
+ <use xlink:href="#09a7fd5ddb594a2ca140e1549b52676c" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="242.75" height="16" p:name="text" id="9f53459a0a2a4f63b8a8b4a8acdb19d5" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Hardware</div></foreignObject><path id="9f53459a0a2a4f63b8a8b4a8acdb19d5_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="8449e7942f704dc6b9fc0a4d4281e8f8" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:2pointline" id="9895d97bd3724c72924fa20418e1d1c9" transform="matrix(1, 0, 0, 1, -49.4, 205.4)"><p:metadata><p:property name="a"><![CDATA[60,0]]></p:property><p:property name="b"><![CDATA[312,0]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property></p:metadata>
+ <path fill="none" style="stroke: transparent; stroke-width: 10px;" p:name="bgpath" id="d13c2c05ab3c45a7a5b8a7b643fd24df" d="M 60 0 L 312 0 z"/>
+ <path fill="none" style="stroke-linejoin: round; stroke: rgb(27, 50, 128); stroke-opacity: 1; stroke-width: 2;" p:name="path" id="659f66fb3df348d18f74786ddbe02e21" transform="translate(0)" d="M 60 0 L 312 0 z"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Group" xmlns:p="http://www.evolus.vn/Namespace/Pencil" transform="matrix(1, 0, 0, 1, 11, 161)" id="69d9c727fb6e4acd9913109328c400c5"><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="9129b0d32ea04f08a8404f13a64b169e" transform="matrix(1, 0, 0, 1, 0, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Windows]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="8f21c09c311847ee9ebbd3d8bef9303a" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="726eb38f126e451faf69716de305aeb9">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#8f21c09c311847ee9ebbd3d8bef9303a" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#726eb38f126e451faf69716de305aeb9)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="3ef451ad32854cd8b1c3c06c8a066e77"/>
+ <use xlink:href="#8f21c09c311847ee9ebbd3d8bef9303a" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="ff50403a85d84651ac3e21bb22e9b49c" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Windows</div></foreignObject><path id="ff50403a85d84651ac3e21bb22e9b49c_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="f5782a59de994f2ea561d96035e9f1d4" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="d106bb0013a94363acee12658d7dec21" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="1c1c30295b314b94b048f54b85a2c877" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="6f0bd8037b014db1860f10237543c3c3" transform="matrix(1, 0, 0, 1, 85, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[GTK/X11]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="9ee22261e8ce4cbab6c1347d7f08cd09" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="bdf9406788cb4d3c97f5c38dba970083">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#9ee22261e8ce4cbab6c1347d7f08cd09" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#bdf9406788cb4d3c97f5c38dba970083)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="1c162c9e9d9848c1b84cc02fb8704b97"/>
+ <use xlink:href="#9ee22261e8ce4cbab6c1347d7f08cd09" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="44ba8531bdf74eba9646fe934d803650" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">GTK/X11</div></foreignObject><path id="44ba8531bdf74eba9646fe934d803650_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="51a48688425845bf8339446b60686535" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="c10d9cfc478a47d3afb729c482bfc453" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="e9015fc0bdff4c1085fcbc58dec34bca" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="7c08c97f61f04be6a3406201c9b0919f" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="b9cd3fcd6414416eb87475b271bc1ab1" transform="matrix(1, 0, 0, 1, 172, 0)"><p:metadata><p:property name="box"><![CDATA[79,37]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,4.625]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Carbon]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|bold|normal|14px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="79" height="37" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="6d317d53ba2342169b24d640e19b27f2" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="5c41e246bd75458a9eb87ed4ab17c2a2">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#6d317d53ba2342169b24d640e19b27f2" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#5c41e246bd75458a9eb87ed4ab17c2a2)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="cf6f108127904a629e532ead3521efdd"/>
+ <use xlink:href="#6d317d53ba2342169b24d640e19b27f2" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="4.625" y="11" width="69.75" height="16" p:name="text" id="908a0ba29c4d4e27b51e4b7d5ac655db" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 14px; font-weight: bold; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Carbon</div></foreignObject><path id="908a0ba29c4d4e27b51e4b7d5ac655db_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="28caffbb23064b948129f1c39c7bd505" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="f0e1dfda06f84b7296f1c13d14cf4753" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="5ac884e389b14cb0bb6dba2612305e5b" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="9456d110cd40452ba5728b35e76e7a60" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="89ea964f047a43f1b0773420a7c5814b" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g></g></Content></Page><Page><Properties><Property name="name">zest-mvc</Property><Property name="id">1287052717037_4543</Property><Property name="width">1081</Property><Property name="height">646</Property><Property name="dimBackground">false</Property><Property name="backgroundColor">#FFFFFFFF</Property><Property name="background">transparent</Property></Properties><Content><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="a398b826f52c416c9b4b0277afb6ba1e" transform="matrix(1, 0, 0, 1, 232, 167)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Model]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="e2d742efa6a0407eb7adab4b9d91ef53" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="9dbcc0a868e94f97a8ceca200b0c9777">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#e2d742efa6a0407eb7adab4b9d91ef53" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#9dbcc0a868e94f97a8ceca200b0c9777)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="ae2757dbcf1d40ffbf48dc9a14c62a80"/>
+ <use xlink:href="#e2d742efa6a0407eb7adab4b9d91ef53" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="1d9c1c62775f45c68a75a570b8e8250e" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Model</div></foreignObject><path id="1d9c1c62775f45c68a75a570b8e8250e_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="1258bad1c36241fcab8695755e706ad1" transform="matrix(1, 0, 0, 1, 516, 167)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[View]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="7f90511e72db49bbb68e1c5c1d747b47" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="c3a54ce55aee42039e85fe078daa88b5">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#7f90511e72db49bbb68e1c5c1d747b47" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#c3a54ce55aee42039e85fe078daa88b5)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="33f4d6e42a90486ca4288e045acc3593"/>
+ <use xlink:href="#7f90511e72db49bbb68e1c5c1d747b47" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="b0ae269b65154d48b70e48e6d4654a8c" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">View</div></foreignObject><path id="b0ae269b65154d48b70e48e6d4654a8c_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="bf860599ba884ab598564b12d20e49be" transform="matrix(1, 0, 0, 1, 374, 295)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Controller]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="53f56f1d47d5492f87d3bdd405cb110d" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="75b835ff2f9a420cb984ae94d7d3cb98">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#53f56f1d47d5492f87d3bdd405cb110d" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#75b835ff2f9a420cb984ae94d7d3cb98)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="846eb58a1c434d45a3ad71f42cff855b"/>
+ <use xlink:href="#53f56f1d47d5492f87d3bdd405cb110d" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="a40c2afb536c426789469c0efeed4764" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Controller</div></foreignObject><path id="a40c2afb536c426789469c0efeed4764_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="97715b13cdf34a23a4c8d549ed3ee0f6" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g></Content></Page></Pages></Document> \ No newline at end of file
diff --git a/images/zest-arch.png b/images/zest-arch.png
new file mode 100644
index 0000000..c735e58
--- /dev/null
+++ b/images/zest-arch.png
Binary files differ
diff --git a/images/zest-mvc.ep b/images/zest-mvc.ep
new file mode 100644
index 0000000..32df630
--- /dev/null
+++ b/images/zest-mvc.ep
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">zest-mvc</Property><Property name="id">1287052717037_4543</Property><Property name="width">1081</Property><Property name="height">646</Property><Property name="dimBackground">false</Property><Property name="backgroundColor">#FFFFFFFF</Property></Properties><Content><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="a398b826f52c416c9b4b0277afb6ba1e" transform="matrix(1, 0, 0, 1, 232, 167)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Model]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="e2d742efa6a0407eb7adab4b9d91ef53" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="9dbcc0a868e94f97a8ceca200b0c9777">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#e2d742efa6a0407eb7adab4b9d91ef53" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#9dbcc0a868e94f97a8ceca200b0c9777)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="ae2757dbcf1d40ffbf48dc9a14c62a80"/>
+ <use xlink:href="#e2d742efa6a0407eb7adab4b9d91ef53" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="1d9c1c62775f45c68a75a570b8e8250e" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Model</div></foreignObject><path id="1d9c1c62775f45c68a75a570b8e8250e_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="1258bad1c36241fcab8695755e706ad1" transform="matrix(1, 0, 0, 1, 516, 167)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[View]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="7f90511e72db49bbb68e1c5c1d747b47" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="c3a54ce55aee42039e85fe078daa88b5">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#7f90511e72db49bbb68e1c5c1d747b47" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#c3a54ce55aee42039e85fe078daa88b5)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="33f4d6e42a90486ca4288e045acc3593"/>
+ <use xlink:href="#7f90511e72db49bbb68e1c5c1d747b47" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="b0ae269b65154d48b70e48e6d4654a8c" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">View</div></foreignObject><path id="b0ae269b65154d48b70e48e6d4654a8c_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.Common:RoundedRect" id="bf860599ba884ab598564b12d20e49be" transform="matrix(1, 0, 0, 1, 374, 295)"><p:metadata><p:property name="box"><![CDATA[200,80]]></p:property><p:property name="withBlur"><![CDATA[false]]></p:property><p:property name="radius"><![CDATA[0,0]]></p:property><p:property name="textPadding"><![CDATA[0,10]]></p:property><p:property name="fillColor"><![CDATA[#4388CCFF]]></p:property><p:property name="strokeColor"><![CDATA[#1B3280FF]]></p:property><p:property name="strokeStyle"><![CDATA[2|]]></p:property><p:property name="textContent"><![CDATA[Controller]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
+
+ <defs>
+ <rect width="200" height="80" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: rgb(67, 136, 204); fill-opacity: 1; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="53f56f1d47d5492f87d3bdd405cb110d" transform="translate(0)"/>
+ <filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="75b835ff2f9a420cb984ae94d7d3cb98">
+ <feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
+ </filter>
+ </defs>
+ <use xlink:href="#53f56f1d47d5492f87d3bdd405cb110d" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#75b835ff2f9a420cb984ae94d7d3cb98)" style="opacity: 0.5; visibility: hidden;" p:heavy="true" p:name="bgCopy" id="846eb58a1c434d45a3ad71f42cff855b"/>
+ <use xlink:href="#53f56f1d47d5492f87d3bdd405cb110d" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ <foreignObject x="10" y="33" width="180" height="15" p:name="text" id="a40c2afb536c426789469c0efeed4764" style="font-family: &quot;Liberation Sans&quot;,Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; fill: rgb(0, 0, 0); fill-opacity: 1; color: rgb(0, 0, 0); opacity: 1; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml">Controller</div></foreignObject><path id="a40c2afb536c426789469c0efeed4764_underline" style="fill: none; stroke-width: 1px; visibility: hidden;"/><path id="97715b13cdf34a23a4c8d549ed3ee0f6" style="fill: none; stroke-width: 1px; visibility: hidden;"/>
+ </g></Content></Page></Pages></Document> \ No newline at end of file